我有一个Web应用程序,报表导出到Excel。 它通过发送报告表的HTML到剪贴板,然后将其粘贴到Excel中做到这一点。 快速和肮脏。 而谈到过相当不错。 数字被格式化为数字,日期为日期,等等。
但报告必须格式化为使用括号,而不是减号负数,而当这是粘贴到Excel中,它变成一个减号。 你可以简单地通过输入(200)到记事本中,然后选择它,复制它,并将其粘贴到Excel电子表格单元格看到这个动作。 它会通过为-200。
我的用户想拥有它显示为(200)。 我可以使用自动化从Javascript手动设置所选单元格。 但是,这是缓慢的。 有没有什么办法让Excel来更改其默认的数字格式?
如果你在一个表到Excel的形式粘贴HTML格式的数据,那么你可以包括CSS样式来控制单元格内容的显示方式。
参见(例如): http://cosicimiento.blogspot.com/2008/11/styling-excel-cells-with-mso-number.html
VBA例如:
Sub Formatting()
Dim html As String, d As New DataObject
html = "<table><tr><td>(200)</td></tr>" & _
"<tr><td style='mso-number-format:\@'>(200)</td></tr></table>"
d.SetText html
d.PutInClipboard
End Sub
HTML例子: CSS格式为Excel Web查询