1

我在 nopcommerce 解决方案 3.90 中工作,在从 excel 文件导入产品时,我得到了这个异常。我的代码如下

public virtual void ImportProductsFromXlsx(Stream stream)
    {
        try
        {
            #region Import business Logic
            using (var xlPackage = new ExcelPackage(stream))
            {
                //get the first worksheet in the workbook
                var worksheet = xlPackage.Workbook.Worksheets.FirstOrDefault();

                if (worksheet == null)
                    throw new NopException("No worksheet found");

                //the columns
                var properties = GetPropertiesByExcelCells<Product>
 (worksheet);

                var manager = new PropertyManager<Product>
 (properties);

                var attributProperties = new[]
.....
.....
 }
}

堆栈跟踪:-

在 OfficeOpenXml.Utils.CompoundDocument.ILockBytes.WriteAt(Int64 ulOffset, IntPtr pv, Int32 cb, UIntPtr& pcbWritten) 在 OfficeOpenXml.Utils.CompoundDocument.GetLockbyte(MemoryStream 流) 在 OfficeOpenXml.ExcelPackage.Load(流输入, 流输出, 字符串密码) 在 OfficeOpenXml.ExcelPackage.Load(Stream input) 在 OfficeOpenXml.ExcelPackage..ctor(Stream newStream) 在 Nop.Services.ExportImport.ImportManager.ImportProductsFromXlsx(Stream stream) 在 d:\Arsh\nop3.90\Libraries\Nop。服务\ExportImport\ImportManager.cs:第 330 行

我尝试过的解决方案是:-

  1. 使用 .xlsx 扩展名重新保存要上传的文件。
  2. 使用 Memorystream 对象。
  3. 添加文件的名称,例如(Worksheets.Add("Worksheet Name");)
  4. 删除标题文本(即标题列,如名称、描述等)

PS 我正在使用 Nopcommerce。这是导入产品的内置代码。

4

1 回答 1

1

请尝试使用 excel 2010+,因为早期版本的 excel 在加密/解密算法方面有所不同。

您可以在此处阅读有关加密/解密的更多信息。

于 2017-12-13T04:38:37.157 回答