我在 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 行
我尝试过的解决方案是:-
- 使用 .xlsx 扩展名重新保存要上传的文件。
- 使用 Memorystream 对象。
- 添加文件的名称,例如(Worksheets.Add("Worksheet Name");)
- 删除标题文本(即标题列,如名称、描述等)
PS 我正在使用 Nopcommerce。这是导入产品的内置代码。