我有一个 API,用于将 Excel 电子表格导入系统,尽管它不能处理丢失的列,但它可以正常工作,而且我不确定如何以及在什么时候可以做到这一点。
我先举个例子:我有一个 Excel 电子表格(.xlsx),其中有 4 列 A、B、C 和 D 都包含文本数据,我想要实现的是
- 当用户使用 A、B 和 C(D 已被删除)导入文件时,它会正确更新行并保持 D 列中的值不变
客户端我有一个如下所示的 API 调用:
this.service.PostFormData<HttpEvent<any>>("v1/ui/importExcel", formData)
其中 formData 是 FormData 类型(API FormData)
在后端我做这样的事情:
HttpFileCollection files = HttpContext.Current.Request.Files;
foreach (string fileKey in files.AllKeys)
{
HttpPostedFile file = files[fileKey];
ISheet sheet = ImportHelper.GetImport(file);
}
public static ISheet GetImport(HttpPostedFile file)
{
ISheet sheet;
XSSFWorkbook workbook = new XSSFWorkbook(file.InputStream); <--- error
sheet = workbook.GetSheetAt(0);
return sheet;
}
一旦它尝试将 InputStream 转换为工作簿,就会触发错误(仅当从导入的电子表格中删除一列时)。
代码在 try & catch (Exception e) 中,尽管 e 返回为空白。
你们能帮忙解决一下吗?另外,让我知道是否有更好的异常类型可以用来获得体面的错误消息