以简单的方式导出到Excel(但不是CSV)

Pet*_*háč 2 html excel colors export-to-excel

昨天,我发现这个操作方法上通过简单的生产HTML将数据导出到Excel电子表格.看起来像是一种使用格式导出单元格的直接方式,只使用CSV格式无法实现.

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

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

  1. <td bgcolor="#ff2323">当我在Firefox中打开XLS文件时,将单个单元格着色就像我想要的那样,但Excel将颜色更改为我认为他们称之为"web-safe"调色板的颜色.这意味着,我得到的是"红色","紫红色","粉红色","橙色","浅黄色"和"白色",而不是256种不同的红色.有没有办法阻止这种颜色转换发生?

  2. 当我打开XLS文件(实际上它只是内部的HTML)时,所有看起来都很好但是分隔单个单元格的细灰线已经消失,我无法弄清楚如何"打开它们".那是什么?

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

Dan*_*Dan 5

您可以使用特殊的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>                      
Run Code Online (Sandbox Code Playgroud)

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