在读取单元格内容之前,以编程方式将表单的格式设置为文本

我有一个要求阅读Excel表格的内容,写入,并允许编辑和重新导入。 我遇到的问题是,当用户在工作表中的单元格中input数字时,数字在后面考虑了SharedString表上的索引,这是我不需要的效果。 我想要做的是强制工作表中的单元格格式化为文本,然后再继续阅读。 我相信这一点,我相信我的数字将被视为string。 我该如何做到这一点?

我会很感激使用OPENXML库来解决这个问题的例子。

唯一的办法是确定你从Excel中检索到的是一个string,即调用Range.Text(它将返回基于当前格式的显示文本),只能使用单个单元格检索。

但是,如果你想使文本格式,然后只是打电话:

Cells.NumberFormat = "@" 

至于我上面说的更多细节…更改格式不会改变单元格的.Value值。 值通常是string,date或双精度,具体取决于数字格式和内容。


编辑
由于你最后的评论,我为你做了一些额外的研究。 但是,这并没有经过我的testing。 如果这不能帮助你,我build议更新你的问题,以显示你试图帮助获得更多来自社区的回应。

你应该能够利用这个答案中列出的步骤(确保如果它帮助你upvote)。

唯一的变化,你应该能够跳过创build一个NumberingFormat 。 当你到达代码: cellFormat.NumberFormatId = nf2decimal.NumberFormatId; 而不是nf2decimal …只使用49. so … cellFormat.NumberFormatId = 49; 根据这个来源, 49应该对应于@的预定义的数字格式

像这样在VBA:

 Cells.Select Selection.NumberFormat = "@"