c# - C# 中的 Excel 导入 - 缺少列错误
问题描述
我有一个 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 返回为空白。
你们能帮忙解决一下吗?另外,让我知道是否有更好的异常类型可以用来获得体面的错误消息
解决方案
推荐阅读
- jenkins - Jenkins - withCredentials 文件截断路径
- scala - 如何写入与 Spark 分区相同数量的文件
- ta-lib - TA-Lib Windows 10 安装
- python - 从现有数据框的查询中创建数据框
- xamarin - Xamarin 自定义控件绑定不起作用
- r - if语句中长度为零的R参数
- c# - 如何从 startup.cs 调用 ITokenAcquisition.GetAccessTokenForUserAsync
- python - 使用时区保存时区感知日期时间
- javascript - 当模式中存在不存在的字段时,猫鼬中的查找不返回任何内容
- flutter - 如何在颤动中编辑列表中的选定项目