我在进口产品时在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
我尝试过的解决方案是: -
- 重新偿还要使用.xlsx扩展名上传的文件。
- 使用MemoryStream对象。
- 添加文件名,例如(worksheets.add("工作表名称");)
- 删除标题文本(即标题列,例如名称,描述等)
P.S。我正在使用nopcommerce。这是进口的内置守则 产品。
请尝试使用Excel 2010 尝试,因为Excel的早期版本在加密/解密算法上有所不同。
您可以在此处阅读有关加密/解密的更多信息。