【问题标题】:EPPlus import file xlsmEPPlus 导入文件 xlsm
【发布时间】:2018-06-05 05:40:12
【问题描述】:

我正在尝试使用 EPPlus 导入 xlsm 文件。我发现说 EPPlus 不支持这个的链接:Convert XLSM to XLSX。它很旧,所以我想知道它现在是否支持它?如果没有,有没有办法通过转换为 XLSX 来使用 EPPlus 来做到这一点,但这种方式应该独立于 Microsoft 更新,并且只依赖于构建程序时使用的库。 我当前的代码如下所示:

FileInfo file = new FileInfo(Path.Combine(Program.source_path, s));
   using (ExcelPackage package = new ExcelPackage(file))
   {
       ExcelWorksheet worksheet = package.Workbook.Worksheets[3];
       for (int row = 9; row <= worksheet.Dimension.End.Row; row++)
       {
       }
   }

【问题讨论】:

    标签: c# epplus excel-import


    【解决方案1】:

    这会将所有内容从源 xlsm 文件复制到目标 xlsx 文件。

          using (var target = new ExcelPackage(new System.IO.FileInfo("D:\\target.xlsx")))
            {
                using (var source = new ExcelPackage(new System.IO.FileInfo("D:\\source.xlsm")))
                {
    
                    foreach (var worksheet in source.Workbook.Worksheets)
                    {
                        target.Workbook.Worksheets.Add(worksheet.Name, worksheet);
                    }
                }
                target.Save();
            }
    

    【讨论】:

    • 您也应该将目标 ExcelPackage 放在 using 语句中。这是迄今为止最好的 EPPlus 解决方案,但我尝试过,但我在一个范围内丢失了表格格式(当我打开 Excel 时,它说它发现了一个问题并尝试恢复,然后表格就消失了。)
    • 我收到异常:值不能为空。\r\n参数名称:编码器..每次
    • 奇怪,我测试过了,是哪一行给你这个异常?
    • 真的很奇怪。尝试调试时错误刚刚更改:“缺少根元素。”我的代码看起来一样。此错误出现在“foreach”语句中。
    • 源文件好像损坏了,你用的是什么版本的EPPLUS?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-23
    相关资源
    最近更新 更多