c# - 如何以编程方式从模板 excel 工作表创建 excel 工作表?

标签 c# asp.net excel excelpackage

我正在从 tempalte excel 工作表创建一个 excel 工作表。

我有密码

try
{
    FileInfo newFile = new FileInfo(@"D:\ExcelFromTemplate.xlsx");
    FileInfo template = new FileInfo(@"D:\template.xlsx");

    using (ExcelPackage xlPackage = new ExcelPackage(newFile, template))
    {
        
        ExcelWorksheet worksheet = xlPackage.Workbook.Worksheets["Sheet1"];
        
        ExcelCell cell = worksheet.Cell(5,1);
        cell.Value = "15";
        
        //worksheet.Cell(5, 1).Value = "Soap";

        //xlPackage.Save();
        Response.Write("Excel file created successfully");
    }

}
catch (Exception ex)
{
    Response.WriteFile(ex.InnerException.ToString());
}  

此代码创建与模板 excel 文件相同的新 excel 文件,但无法添加单元格值。为什么?

我已经用上面代码中的 2 种方法尝试过 cell(5,1)。但是 Excel 工作表创建时没有写入单元格值。我们如何添加它。

最佳答案

您需要保存文件以保留所做的更改。使用保存()

  try
        {
            FileInfo newFile = new FileInfo(@"D:\ExcelFromTemplate.xlsx");
            FileInfo template = new FileInfo(@"C:\Example.xlsx");

            using (ExcelPackage xlPackage = new ExcelPackage(newFile , template))
            {

               //Added This part
               foreach (ExcelWorksheet aworksheet in xlPackage.Workbook.Worksheets)
                {
                    aworksheet.Cell(1, 1).Value = aworksheet.Cell(1, 1).Value;
                }

                ExcelWorksheet worksheet = xlPackage.Workbook.Worksheets["My Data"];

                ExcelCell cell = worksheet.Cell(5, 1);
                cell.Value = "15";

                //worksheet.Cell(5, 1).Value = "Soap";

                xlPackage.Save( );
                //Response.Write("Excel file created successfully");
            }

        }
        catch (Exception ex)
        {
            //Response.WriteFile(ex.InnerException.ToString());
        }

找到问题了。该问题是 ExcelPackage 固有的。 同样,您必须打开每个工作表并对其进行一些更改才能保存。

搜索论坛以获得更多解释。

关于c# - 如何以编程方式从模板 excel 工作表创建 excel 工作表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1628891/

相关文章:

c# - 为什么绑定(bind)不足以刷新 WP7 (MVVM) 中的 UI

c# - HttpClient在c#中将Host和UserAgent添加到请求中

c# - 动态添加复选框到gridview

vba - Excel 表单组合框值到单元格

excel - 用“(英制符号)VBA Excel 替换不可打印字符

c# - 是否有现有的 C# 扩展方法库?或分享你自己的

C#多线程代码审查

C# - 如何使用 7-zip 库(即不是 .7z,而是 .zip)创建常规 ZIP 存档?

c# - 为什么 Asp.net MVC 不能区分具有不同参数的两个 Action ?

java - 从 xls 读取数据,使 xls 文件在 selenium 中损坏