导入xlsx文件uisng NPOI时出错,而它适用于xls

时间:2017-08-11 05:12:05

标签: c# import npoi

我正在尝试导入一个excel文件(xlsx),但它引发了以下问题:

无法加载文件或程序集' ICSharpCode.SharpZipLib,Version = 0.86.0.518,Culture = neutral,PublicKeyToken = 1b03e6acf1164f73'或其中一个依赖项。该系统找不到指定的文件。

但对于具有相同代码的xls,它的效果非常好。

  using (FileStream file = new FileStream(filename, FileMode.Open, 
      FileAccess.Read))
                {
                    FileExtension = Path.GetExtension(filename);
                    if 
   (FileExtension.ToLower().Equals(StringConstants.FILE_EXTENSION_XLS))
                    {
                        HSSFWorkBook = new HSSFWorkbook(file);
                        intCountSheets = HSSFWorkBook.NumberOfSheets;
                        EaRepos = DiagFunAnaClass.EaRepos;
                        objPackage = DiagFunAnaClass.objPackage;
                        plantCode = DiagFunAnaClass.plantCode;
                        buttonValidate.Enabled = true;
                    }
                    else if 
    (FileExtension.ToLower().Equals(StringConstants.FILE_EXTENSION_XLSX))
                    {
                        XSSFWorkBook = new XSSFWorkbook(file);

错误出现在上面代码的最后一行。

2 个答案:

答案 0 :(得分:1)

我建议您删除NPOI并使用EPPlus。我花了3天时间用NPOI自动创建一些Excel,只是发现要添加一个列我必须手动移动每个单元格并管理NPOI返回空对象的空单元格。

使用EPPlus编写的代码小10倍,简单20倍。

注意:我与EPPlus没有任何关系,只是我自己的经验

答案 1 :(得分:0)

您的代码似乎是正确的,我也尝试过Manprit的代码。它在我的2.2.1版本中正常工作。有时在NPOI功能中,即使按照文档记录所有内容,也无法正常工作。我建议你最后一件事是尝试使用 Stream 类型为XSSF类型化 filestream 类型,如下所示

/* latin */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 400;
  src: local('Open Sans Regular'), local('OpenSans-Regular'), url(https://fonts.gstatic.com/s/opensans/v14/cJZKeOuBrn4kERxqtaUH3VtXRa8TVwTICgirnJhmVJw.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215;
}
/* latin */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 600;
  src: local('Open Sans SemiBold'), local('OpenSans-SemiBold'), url(https://fonts.gstatic.com/s/opensans/v14/MTP_ySUJH_bn48VBG8sNSugdm0LZdjqr5-oayXSOefg.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215;
}

FileStream派生自Stream类