* 此了函數用於把單表中的數據轉出excel
*/
static public void ExportToExcel(object[] columName, object[] fieldName, System.Data.DataTable dt, string Name)
{
try
{
Excel.Application app = new Excel.Application();
_Workbook wkb = app.Workbooks.Add(XlWBATemplate.xlWBATWorksheet);
_Worksheet wks = (_Worksheet)wkb.ActiveSheet;
wks.Name = Name;
wks.Visible = XlSheetVisibility.xlSheetVisible;
Range wksRange;
string[] cellValue = new string[columName.Length];
string[] cellValue1 = new string[columName.Length];
//加欄位名
for (int i = 0; i <= columName.Length - 1; i++)
cellValue1[i] = columName[i].ToString();
wksRange = wks.get_Range(wks.Cells[1, 1], wks.Cells[1, fieldName.Length]);
#if OFFICEXP
wksRange.set_Value(Missing.Value, cellValue1);
#else
wksRange.Value = cellValue1;
#endif
for (int i = 0; i <= dt.Rows.Count - 1; i++)
{
for (int j = 0; j <= fieldName.Length - 1; j++)
{
//string strValue = "";
if (dt.Columns[fieldName[j].ToString()].DataType.ToString() == "System.DateTime")
{
if (dt.Rows[i][fieldName[j].ToString()] != DBNull.Value)
cellValue[j] = Convert.ToDateTime(dt.Rows[i][fieldName[j].ToString()]).ToShortDateString();
else
cellValue[j] = "";
}
else
cellValue[j] = dt.Rows[i][fieldName[j].ToString()].ToString();
//cellValue[j] = strValue;
}
wksRange = wks.get_Range(wks.Cells[i + 2, 1], wks.Cells[i + 2, fieldName.Length]);
#if OFFICEXP
wksRange.set_Value(Missing.Value, cellValue);
#else
wksRange.Value = cellValue;
#endif
}
wks.Columns.EntireColumn.AutoFit();//自動調整欄位的寬度
app.Visible = true;
}
catch (Exception E)
{
MessageBox.Show(E.Message);
}
}
2 个解决方案
#1
找到原因了,
string[] cellValue = new string[columName.Length];
不能用string,隻能用泛型
object[] cellValue = new object[columName.Length];
string[] cellValue = new string[columName.Length];
不能用string,隻能用泛型
object[] cellValue = new object[columName.Length];
#2
没坐到沙发,帮忙顶
#1
找到原因了,
string[] cellValue = new string[columName.Length];
不能用string,隻能用泛型
object[] cellValue = new object[columName.Length];
string[] cellValue = new string[columName.Length];
不能用string,隻能用泛型
object[] cellValue = new object[columName.Length];
#2
没坐到沙发,帮忙顶