代码之家  ›  专栏  ›  技术社区  ›  Peter Perháč

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

  •  2
  • Peter Perháč  · 技术社区  · 15 年前

    昨天我发现了这个 How-To 通过生成HTML将数据导出到Excel电子表格。似乎是导出带有格式的单元格的简单方法,而仅仅使用csv格式是无法实现的。

    我的想法是在Java应用程序中处理一些数据,将结果导出到Excel电子表格中,并利用Excel的能力来进一步分析数据、绘制图表等。(避免重新实现Excel的强大功能)。但是,在导出数据之前,我想给一些单元格的背景上色。Excel的“条件格式”功能还不够(另外,我不想手动这样做)。我发现在Java应用程序中准备所有格式的电子表格并从Excel中走出来是相当方便的。

    中提到的方法 如何 ,很简单,除了两个问题外,还可以很好地工作。我希望你们中的一些人以前有过这方面的经验,能够为这个问题提供一些线索。

    1. 将单个细胞着色为 <td bgcolor="#ff2323"> 当我在Firefox中打开XLS文件时,它的外观会完全符合我的要求,但Excel会将颜色改为我认为的“网络安全”调色板。这意味着,我没有256种不同的红色,而是得到了“红色”、“紫红色”、“粉色”、“橙色”、“淡黄色”和“白色”。有没有办法阻止这种颜色转换的发生?

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

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

    3 回复  |  直到 15 年前
        1
  •  1
  •   John Y    15 年前

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

    我怀疑自动HTML到Excel导入不想为您设置这些颜色,特别是因为您的HTML伪Excel文件可能包含的颜色多于Excel调色板的插槽。不管怎样,它都会让你失望。Excel的实施者可能会认为预先让您失望会更容易、更简单。;)

        2
  •  5
  •   Dan    15 年前

    可以使用特殊的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 link 有关此格式的详细文档。

        3
  •  1
  •   kevchadders    15 年前

    网格线…

    1. 进入 工具 gt; 选项 然后在 视图 选项卡检查 网格线 复选框

    (基于Excel 2003)