【问题标题】:Format html table cell numeric value as text for Excel将 html 表格单元格数值格式化为 Excel 的文本
【发布时间】:2023-11-23 18:51:02
【问题描述】:

场景:我正在尝试将 html 表格导出到 Web 应用程序(在线托管的网站)中的 Excel 文件,以供客户下载到他们的计算机。

所有数据都按预期导出,除了 1 个问题。

HTML 表格网页以 XLS 文件扩展名保存。

以下是保存为 XLS 文件的示例 html 页面:

<html>
<head>
</head>
<body>
<table>
<tr><td>1/42</td></tr>
</table>
</body>
</html>

在Excel(2019版)中打开这个文件后,

1/42

改为

01/01/1942

并显示为

Jan-42

在 Excel 单元格中。

我尝试在值前加上单引号 '

但随后值显示为

'1/42

在 Excel 单元格中。

如何让它显示为

1/42

正确地不使用单引号并避免 Excel 将其自动重新格式化为日期,并且无需更改 Excel 单元格值格式。

在编写 HTML 文档时有什么可以做的吗?

【问题讨论】:

    标签: html excel date


    【解决方案1】:

    我会先在记事本中打开数据。然后打开excel,把A列改成TEXT格式。从记事本复制数据,然后使用 PasteSpecial>Values 粘贴到 Excel 中。这应该可以满足您的需求。

    【讨论】:

    • 您好,感谢您的解决方案。但是,由于必须预先编写文件供客户端下载的场景,请求客户端在记事本中手动执行任务是不可行的。我进一步编辑了我的问题以包含这种情况。
    • 据我所知,excel 总是会自动格式化数字。您可以从文本导入文件和/或使用 '1/42 符号在打开时使用 vba 代码进行查找/替换,同时保留格式。如果你愿意,我可以为你写 vba 代码。
    • 您好,感谢您的提示。我找到了另一个更简单的解决方案,只需添加 CSS 类,这将告诉 Excel 强制相应地格式化单元格。我已将其发布为另一个答案。无论如何感谢您的帮助。
    【解决方案2】:

    答案来自:
    https://*.com/a/4620023/520848
    HTML to Excel: How can tell Excel to treat columns as numbers?

    格式可以应用于数字、文本、日期等的单元格。

    通过添加 CSS 类:

    .num {
      mso-number-format:General;
    }
    .text{
      mso-number-format:"\@";/*force text*/
    }
    

    将类添加到单元格中

    <td class="num">34</td>
    <td class="num">17.0</td>
    <td class="text">067</td>
    

    【讨论】: