2

昨天我发现了这个如何通过简单地生成 HTML 将数据导出到 Excel 电子表格。似乎是一种使用格式导出单元格的简单方法,仅使用 CSV 格式无法实现。

我的想法是在 Java 应用程序中处理一些数据,将结果导出到 Excel 电子表格,并利用 Excel 的功能进一步分析数据、绘制图表等......(避免重新实现 Excel 的强大功能)。但是,在导出数据之前,我想为某些单元格的背景着色。Excel 的“条件格式”功能还不够(另外,我不想手动执行此操作)。我发现在 Java 应用程序中准备具有所有格式的电子表格并在 Excel 中从那里开始是相当方便的。

How-To中提到的方法很简单,效果很好,除了两个问题。我希望你们中的一些人可能有这方面的经验,并且能够为这个问题提供一些启示。

  1. 当我在 Firefox 中打开 XLS 文件时,为单个单元格着色<td bgcolor="#ff2323">将完全符合我想要的方式,但 Excel 将颜色更改为我认为他们称之为“网络安全”调色板的颜色。这意味着,我得到的不是 256 种不同深浅的红色,而是“红色”、“紫红色”、“粉红色”、“橙色”、“浅黄色”和“白色”。有没有办法阻止这种颜色转换的发生?

  2. 当我打开 XLS 文件(实际上只是内部的 HTML)时,一切看起来都很好,但分隔单个单元格的细灰色线消失了,我不知道如何“打开它们”。那是怎么回事?

问题 1 是我真正想解决的主要问题。

4

3 回答 3

6

您可以使用特殊的 XML 格式化选项在电子表格中强制使用网格线:

<html xmlns:o="urn:schemas-microsoft-com:office:office"
                        xmlns:x="urn:schemas-microsoft-com:office:excel"
                         xmlns="http://www.w3.org/TR/REC-html40">
<head>
<xml>
 <x:ExcelWorkbook>
  <x:ExcelWorksheets>
   <x:ExcelWorksheet>
    <x:Name>Sheet</x:Name>
    <x:WorksheetOptions>
     <x:Print>
        <x:Gridlines />
     </x:Print>
    </x:WorksheetOptions>
   </x:ExcelWorksheet>
  </x:ExcelWorksheets>
 </x:ExcelWorkbook>
</xml>
</head>                      
<body>
<table>
<tr><td bgcolor="#ff2323">hello</td></tr>
</table>
</body>
</html>                      

更一般地说,有关此格式的详细文档,请参阅此MSDN 链接

于 2009-11-16T16:06:53.860 回答
1

对于网格线...

  1. 进入Tools > Options,然后在View选项卡中选中Gridlines复选框

(基于 Excel 2003)

于 2009-11-16T14:56:09.850 回答
1

我实际上希望 Excel 不会为您提供标准的 Web 安全颜色,而是从它自己的调色板中进行选择(它甚至更小;“传统”版本的 Excel 上只有 56 个插槽,也许 2007 年已经取消了这一点)。可以在 Excel 中选择您自己的自定义颜色(我在工作中使用的版本中的工具->选项->颜色),但是您选择的每种新颜色都会替换“工厂”默认值之一。

我怀疑自动 HTML 到 Excel 导入只是不想为您设置这些颜色的麻烦,特别是因为您的 HTML 伪 Excel 文件包含的颜色可能比 Excel 的调色板所包含的颜色更多。那么无论如何它都会被迫让你失望。Excel 的实施者可能认为让您失望会更容易和更简单。;)

于 2009-11-19T06:30:18.063 回答