可以';t将数据写入现有的xlsx文件
本文关键字:文件 xlsx 数据 可以 | 更新日期: 2023-09-27 18:21:04
我在下面写了这段代码
string filePath = @"C:'report_data.xlsx";
// Saves the file via a FileInfo
var file = new FileInfo(filePath);
// Creates the package and make sure you wrap it in a using statement
using (var package = new ExcelPackage(file))
{
// Adds a new worksheet to the empty workbook
OfficeOpenXml.ExcelWorksheet worksheet = package.Workbook.Worksheets.Add("Report System - " + DateTime.Now.ToShortDateString());
// Starts to get data from database
for (int row = 1; row < 10; row++)
{
// Writes data from sql database to excel's columns
for (int col = 1; col < 10; col++)
{
worksheet.Cells[row, col].Value = row * col;
}// Ends writing data from sql database to excel's columns
}// Ends getting data from database
// Saves new workbook and we are done!
package.Save();
}
当我打开文件时,它什么都没有,页面也是空白的。但当我看到文件大小时,它增加了。当文件大小增加时,为什么页面是空白的?我如何向其中写入数据?
备注:当我尝试删除现有文件并运行程序时,程序生成了文件,文件的值显示在列中。另一方面,我尝试先创建文件,然后运行程序,结果是空白的,就像我上面说的那样。
OfficeOpenXml.ExcelWorksheet worksheet =
package.Workbook.Worksheets.Add("Report System - " +
DateTime.Now.ToShortDateString());
至
OfficeOpenXml.ExcelWorksheet worksheet =
package.Workbook.Worksheets["Sheet1"];
它成功了!!。
因为Sheet1
是工作表的默认名称,它存在于我的文件中的第行:
string filePath = @"C:'report_data.xlsx";
实际上,在这种情况下,package.Workbook.Worksheets.Add
意味着添加工作表的名称,我发现它不必添加工作表名称,因为它已经存在。