我需要阅读 excel 表的内容,写入并允许编辑和重新导入。我遇到的问题是,当用户在工作表的单元格中输入数字时,这些数字在背面被视为 SharedString 表上的索引,这是我不需要的效果。我想做的是在继续阅读之前强制将工作表中的单元格格式化为文本。我相信这样,我确信我的数字将被视为字符串。请问我该怎么做?
我会很感激使用 OPENXML 库来解决这个问题的例子。
确定您从 Excel 中检索的内容是字符串的唯一方法是调用 Range.Text(它将根据当前格式返回显示的文本),只能使用单个单元格检索。
但是,如果您想制作文本格式,则只需调用:
Cells.NumberFormat = "@"
作为我上面所说的更多细节......更改格式不会改变单元格的 .Value 。值通常是字符串、日期或双精度值,具体取决于它们的数字格式和内容。
编辑
由于您的最后评论,我为您做了一些额外的研究。但是,这没有经过我的测试。如果这对您没有帮助,我建议更新您的问题,以显示您为帮助获得社区更多响应所做的努力。
您应该能够利用此答案中列出的步骤(如果对您有帮助,请务必投赞成票)。
唯一的变化,您应该能够跳过创建NumberingFormat。当您看到代码时:
cellFormat.NumberFormatId = nf2decimal.NumberFormatId;
而不是 nf2decimal... 只需使用 49。所以...
cellFormat.NumberFormatId = 49;
49 应该对应于 @ 的预定义数字格式,根据此来源
像这样在 VBA 中:
Cells.Select
Selection.NumberFormat = "@"