nopcommerce在写操作期间发生了磁盘错误.(Hresult的例外:0x8003001d(STG_E_WRITEF



我在进口产品时在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[]
.....
.....
 }
}

stacktrace : -

在OfficeOpenxml.utils.compounddocument.ilockbytes.writeat(INT64) ULOFFSET,INTPTR PV,INT32 CB,UINTPTR&amp;pcbwritten)at OfficeOpenxml.utils.compounddocument.getlockbyte(MemoryStream流) 在OfficeOpenxml.excelpackage.load(流输入,流量输出,字符串) 密码)at OfficeOpenxml.excelpackage.load(流输入) OfficeOpenxml.excelpackage..ctor(stream newstream)at nop.services.exportimport.importmanager.importproductssfromxlsx(流 流)in D: arsh nop3.90 libraries nop.services exportimport importManager.cs:line 330

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

  1. 重新偿还要使用.xlsx扩展名上传的文件。
  2. 使用MemoryStream对象。
  3. 添加文件名,例如(worksheets.add("工作表名称");)
  4. 删除标题文本(即标题列,例如名称,描述等)

P.S。我正在使用nopcommerce。这是进口的内置守则 产品。

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

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

相关内容

  • 没有找到相关文章

最新更新