无法使用此导出到excel代码写入单元格
本文关键字:代码 excel 单元格 | 更新日期: 2023-09-27 18:03:24
我使用此代码将DataGridView行导出到Excel工作表。
Excel.Application xlApp;
Excel.Workbook xlWorkBook;
Excel.Worksheet xlWorkSheet;
object misValue = System.Reflection.Missing.Value;
xlApp = new Excel.ApplicationClass();
xlWorkBook = xlApp.Workbooks.Add(misValue);
xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);
int i = 0;
int j = 0;
for (i = 0; i <= dgv.RowCount - 1; i++)
{
for (j = 0; j <= dgv.ColumnCount - 1; j++)
{
DataGridViewCell cell = dgv[j, i];
xlWorkSheet.Cells[i + 5, j + 2] = cell.Value;
}
}
string SavedFilePath = Application.StartupPath + "''GeneratedExcelReports''";
xlWorkBook.SaveAs(SavedFilePath + ExcelFileNameToCreate + ".xls", Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue, Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue);
xlWorkBook.Close(true, misValue, misValue);
xlApp.Quit();
如果我添加这行代码:
xlWorkSheet.Cells[0,1].Value = "My Test Report";
会产生错误,因为它在Intelli-Sense打开的列表中没有任何值。如何在运行时编辑特定的单元格?
由于VB的传统,Cells
属性是一个非零索引数组(或者不管它叫什么=>索引从1开始)。因此,要设置位于第1行和第1列的单元格的值,请使用以下命令:
xlWorkSheet.Cells[1, 1].Value = "My Test Report";
^
must not be zero