c# - excel中的撇号(')不隐藏

标签 c# excel

我正在从 HTML 字符串创建一个 excel 文件。在其中我想在电话号码前添加一个撇号,因为 excel 将电话号码转换为 e 形式,如 1+e23。我想将电话号码显示为电话号码。

HTML 添加了撇号,但是当转换为 excel 时,撇号显示为这样

enter image description here

即使这在打印预览中也显示为撇号。

但是,当我尝试编辑单元格并简单地按回车键而不更改内容时,它会在 excel 中隐藏撇号。

enter image description here

我首先需要知道为什么它没有被隐藏。

最佳答案

正如其他人所暗示的,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/

相关文章:

c# - 通常识别 C# 中的模式

excel - 获取 ClassName 的每个实例的元素

excel - 如何在 Excel 中计算每个类别的唯一值

excel - 在VBA中递归打印下一个字典

c# - Out of memory异常读写文本文件

c# - 如何在MessageBox中设置个人更改?

c# - C#多线程访问单一方法

sql-server - SSIS 包 - 在 Excel 连接中保留相同的连接属性

r - 导入具有多个工作表的 excel 工作簿

c# - 如何对数组中的奇数进行升序排序?