我无法更改现有 Excel 文档 (xlsx) 中的列格式。列内容实际上是数字,但显示为文本,因此出现绿色三角形告诉单元格显示为文本。
所以我在 C# 应用程序中打开此文档并执行以下操作:
sheet_.Range[sheet_.Cells[1, 2], sheet_.Cells[rowNum, 2]].EntireColumn.NumberFormat = "0";
但它不会更改列以将内容显示为数字(它们保持左侧对齐)
最佳答案
我知道这是一篇旧帖子,但我一直在处理同样的问题。我收到的 .xlsx 文件已经有绿色三角形表示“数字为文本”错误。我找不到一种方法来以编程方式运行 Excel 错误检查命令“转换为数字”,您可以通过单击 Excel 来执行此操作,并更改具有这些错误的单元格上的 NumberFormat 对我不起作用,但我能够使用 TextToColumns 方法“刷新”单元格格式。
int lastCol = sheet.UsedRange.Columns.Count;
if(lastCol > 1)
{
for (int i = 1; i <= lastCol; i++)
{
sheet.Columns[i].TextToColumns(Type.Missing, XlTextParsingType.xlDelimited, XlTextQualifier.xlTextQualifierNone);
}
然后您可以从那里更改 NumberFormat。我碰巧有被放入科学记数法的长整数,所以我用它再次使它们成为常规整数:
sheet.Cells.NumberFormat = "#";
(PS,如果有人找到有关用于自定义 NumberFormats 的符号的权威指南,我仍在努力寻找!)
关于c# - 在现有文档中编辑范围 NumberFormat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13065087/