/// <summary>
/// 将DataTable数据写入Excel文件(不分页)
/// </summary>
/// <param name="dt">DataTable</param>
/// <param name="top">表格数据起始行索引</param>
/// <param name="left">表格数据起始列索引</param>
public void DataTableToExcel(DataTable dt, int top, int left)
{
int rowCount = dt.Rows.Count; //DataTable行数
int colCount = dt.Columns.Count; //DataTable列数 //利用二维数组批量写入
string[,] arr = new string[rowCount, colCount]; for (int j = 0; j < rowCount; j++)
{
for (int k = 0; k < colCount; k++)
{
arr[j, k] = dt.Rows[j][k].ToString();
}
} range = (Excel.Range)workSheet.Cells[top, left];
range = range.get_Resize(rowCount, colCount);
range.Value = arr;
} 以上部分是我从一个博客中借用到程序的,可是生成时range.Value = arr;就报错,内容如下:
属性、索引器或事件“Value”不受该语言支持;请尝试直接调用访问器方法Excel.Range.get_Value(object)
或Excel.Range.set_Value(object,object) 还请各位能人帮忙解决,谢谢!
/// 将DataTable数据写入Excel文件(不分页)
/// </summary>
/// <param name="dt">DataTable</param>
/// <param name="top">表格数据起始行索引</param>
/// <param name="left">表格数据起始列索引</param>
public void DataTableToExcel(DataTable dt, int top, int left)
{
int rowCount = dt.Rows.Count; //DataTable行数
int colCount = dt.Columns.Count; //DataTable列数 //利用二维数组批量写入
string[,] arr = new string[rowCount, colCount]; for (int j = 0; j < rowCount; j++)
{
for (int k = 0; k < colCount; k++)
{
arr[j, k] = dt.Rows[j][k].ToString();
}
} range = (Excel.Range)workSheet.Cells[top, left];
range = range.get_Resize(rowCount, colCount);
range.Value = arr;
} 以上部分是我从一个博客中借用到程序的,可是生成时range.Value = arr;就报错,内容如下:
属性、索引器或事件“Value”不受该语言支持;请尝试直接调用访问器方法Excel.Range.get_Value(object)
或Excel.Range.set_Value(object,object) 还请各位能人帮忙解决,谢谢!
其次请你确认在你的类中有没有使用[DllImport("user32.dll", SetLastError = true)]
如果两者少一个的话,可能都会提示你所描述的错误!
希望对你有所帮助!
看看!