我正在从 HTML 字符串创建一个 excel 文件。在其中我想在电话号码前添加一个撇号,因为 excel 将电话号码转换为 e
形式,如 1+e23
。我想将电话号码显示为电话号码。
HTML 添加了撇号,但是当转换为 excel 时,撇号显示为这样
即使这在打印预览中也显示为撇号。
但是,当我尝试编辑单元格并简单地按回车键而不更改内容时,它会在 excel 中隐藏撇号。
我首先需要知道为什么它没有被隐藏。
最佳答案
正如其他人所暗示的,excel 导入的内容和它计算的内容(在单元格编辑之后)之间有时存在差异。
对我来说,解决此问题的最佳方法是将单元格值设置为文本开头。你没有说你是如何从 Html 生成 Excel 文件的,但我猜你只是在生成 .csv?
一个开放的 xml 库,例如 EPPlus使向单元格写入文本变得容易(即使文本看起来像 Excel 导入的数字,如果写入 csv)。
例如:
using (var excelPackage = new ExcelPackage())
{
ExcelWorksheet ws = excelPackage.Workbook.Worksheets.Add("Data");
ws.Cells["A1"].Value = "Tel. No as number:";
ws.Cells["B1"].Value = 1231231234;
ws.Cells["A2"].Value = "Tel. No as text:";
ws.Cells["B2"].Value = "1231231234";
ws.Column(1).AutoFit();
ws.Column(2).AutoFit();
excelPackage.SaveAs(new FileInfo(@"C:\Temp\OutputExample.xlsx"));
}
这会显示没有前导撇号的单元格 B2,而无需计算单元格。
关于c# - excel中的撇号(')不隐藏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29888851/