HTML to Excel: How can tell Excel to treat columns as numbers?
在Excel
- 强制Excel将td单元格的内容视为数字
- 进行上述操作,以便任何后续用户输入的公式都可以在这些单元格上工作(打开电子表格时)
到目前为止,我已经成功地将
如果成功,该技术将非常有用,因为用户可以根据自定义要求使用适当的公式来增强任何Web Excel报告。预先感谢。
如果将CSS类添加到页面:
1 2 3 4 5 6 | .num { mso-number-format:General; } .date { mso-number-format:"Short Date"; } |
然后将这些类拍到TD上,行得通吗?
1 2 3 | <td class="num">34</td> <td class="num">17.0</td> <td class="date">12/17/2008</td> <!-- if you are playing with dates too --> |
更新:@Aaron中的其他格式选项。
这是Excel格式的列表:使用mso-number-format
设置Excel单元格的样式
最好的技巧是使用所需的所有颜色/(条件)格式/公式来模拟Excel电子表格。
使它尽可能简单,仅保留最小的行等。
然后将Excel电子表格"另存为Xml电子表格"
然后您有一个模板,可以通过Xml构建电子表格。
我通常会清理从Excel工作簿保存的原始Xml中的样式。删除重复项并重命名。
然后只需填充您拥有的任何数据源即可。
我不知道您要编码到什么环境,但是在带有LINQ和Xml Literals的VB.NET中,这是一个非常简单的任务。
如果您使用
1 | style="mso-number-format:\\@;" |
对您而言,应为
1 | mso-number-format:General |
此页面上的任何答案都无法在Excel 2010中使用。我最终使用了此答案。
1 | <td x:num>123</td> |
更新:您还需要从td包含数字或货币信息的单元格中删除不间断空格(nbsp),以使公式在Excel中的这些单元格上起作用。这样就解决了问题。
1 2 3 4 5 | mso-number-format:0 NO Decimals mso-number-format:"\\#\\,\\#\\#0\\.000" 3 Decimals mso-number-format:"mm\\/dd\\/yy" Thousand comma with 3 decimals mso-number-format:"mmmm\\\\ d\\\\\\,\\\\ yyyy" Date7 mso-number-format:"m\\/d\\/yy\\\\ h\\:mm\\\\ AM\\/PM" Date9 |
文本列
1 | "<td style="mso-number-format:'\\@'">" |
或
1 | <td style="mso-number-format:'\\@'"> |