无法使用此导出到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打开的列表中没有任何值。如何在运行时编辑特定的单元格?

无法使用此导出到excel代码写入单元格

由于VB的传统,Cells属性是一个非零索引数组(或者不管它叫什么=>索引从1开始)。因此,要设置位于第1行和第1列的单元格的值,请使用以下命令:

xlWorkSheet.Cells[1, 1].Value = "My Test Report";
                  ^
           must not be zero