首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >NPOI C#单元格格式警告(以文本形式存储的数字)

NPOI C#单元格格式警告(以文本形式存储的数字)
EN

Stack Overflow用户
提问于 2021-09-30 02:42:56
回答 1查看 734关注 0票数 1

我试图在VisualStudio2019中使用C#生成一个excel文件(C#),使用NPOI库。我遇到的问题是插入的数据格式不正确。

我有一个可以同时包含数字和文本的字段,当它显示在excel中时,单元格只在数字字段(如所附的图像)上发出警告“数字作为文本存储”。

我尝试使用以下方法使单元格成为字符串单元格。

  1. 通过向单元格提供样式。

代码语言:javascript
运行
复制
ICellStyle cellStyle = book.CreateCellStyle();
cellStyle.DataFormat = NPOI.HSSF.UserModel.HSSFDataFormat.GetBuiltinFormat("text");

  1. 通过设置单元格型

代码语言:javascript
运行
复制
ICell cell = row.CreateCell(cellIndex);
cell.CellStyle = cellStyle;
cell.SetCellType(CellType.String);
cell.SetCellValue(itemData.PropertyName.ToString());

不过,在生成的excel文件中仍然会收到相同的警告。

任何帮助都是非常感谢的。

EN

回答 1

Stack Overflow用户

发布于 2021-09-30 05:43:05

这是正确而有效的行为。Excel消息是信息性的,而不是错误。它告诉您,您已经成功地存储了一个仅由数字字符组成的文本字符串。Excel中的选项是将其转换为数字或忽略“错误”。

如果希望将值存储为数字,则不需要使单元格类型为字符串,只需执行如下操作:

代码语言:javascript
运行
复制
  if (itemData.PropertyName.ToString().Any(c => !char.IsNumber(c)))
    cell.SetCellType(CellType.String);
  else
    cell.SetCellType(CellType.Numeric);

这可能是有用的:NPOI Cell Formatting Link

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69385461

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档