我需要阅读Excel工作表的内容,写入并允许编辑和重新导入。我遇到的问题是,当用户在工作表的单元格中输入一个数字时,数字在背面被认为是SharedString表上的索引,这是我不需要的效果。我想要做的是强制将工作表中的单元格格式化为文本,然后再继续阅读它。我相信这一点,我相信我的数字将被视为字符串。我该如何做到这一点?
我很感激使用OPENXML库解决这个问题的例子。
答案 0 :(得分:2)
确定从Excel检索的内容是字符串的唯一方法是调用Range.Text(它将根据当前格式返回显示的文本),只能使用单个单元格检索。
但是如果你想制作文字格式,那么只需调用:
Cells.NumberFormat = "@"
作为上述内容的进一步细节......更改格式不会改变单元格的.Value。值通常是字符串,日期或双打,具体取决于其数字格式和内容。
修改强>
由于您的上次评论,我为您做了一些额外的研究。但是,我没有对此进行测试。如果这对你没有帮助,我建议你更新你的问题,以显示你试图从社区获得更多回应的内容。
您应该能够使用this answer中列出的步骤(如果它对您有所帮助,请务必提供支持)。
唯一的变体是,您应该可以跳过创建NumberingFormat。当你到达代码:
cellFormat.NumberFormatId = nf2decimal.NumberFormatId;
而不是nf2decimal ......只需使用49.所以......
cellFormat.NumberFormatId = 49;
49应对应@ according to this source
答案 1 :(得分:1)
在VBA中这样:
Cells.Select
Selection.NumberFormat = "@"