如何将数据写入.SYLK文件或转换SLK文件数据

时间:2014-05-19 06:31:05

标签: java export-to-excel slk

我有一个代码,其中包含一个获取列和行并将其导出到SLK文件的函数。它使用特定的样式表(例如,日期以某种方式显示,价格以另一种方式显示)。但是,文件的表示形式是使用长字符串编写的,并且没有记录。我需要使用java编写相同的函数,并想知道是否有更好的方法来重写这段代码,例如使用apache HSSFWorkbook类。

但是,我不知道我当前的字符串表示意味着什么。

所以我的问题是:

  1. 我是否可以使用其他开源类编写此代码
  2. 是否有任何网站可以告诉我这个字符串代表什么(哪种风格),所以我可以使用HSSFWorkbook类初始化写一个
  3. 谢谢Ido

    我当前的功能是这样开始的并且看起来不太好(它在javascript中我需要在java中重写它):

    function exportToSlk(columns, rows,filename, $a) {
        var formatMaps = {
            "$#,###.##":"F;P34;F$2G;",
            "$#0.00":"F;P34;F$2G;",
            "$#0.000" : "F;P34;F$2G;",
            "#,###":"F;P39;FI0G;",
            "%#0.00":"F;P14;F%2G;",
            "date": "F;P19;FG0G;"
        };
        var header =   'ID;PWXL;N;E\nO;L\nP;PGeneral\nP;P0\nP;P0.00\nP;P#,##0\nP;P#,##0.00\nP;P#,##0_);;\\(#,##0\\)\nP;P#,##0_);;[Red]\\(#,##0\\)\nP;P#,##0.00_);;\\(#,##0.00\\)\nP;P#,##0.00_);;[Red]\\(#,##0.00\\)\nP;P"$"#,##0_);;\\("$"#,##0\\)\nP;P"$"#,##0_);;[Red]\\("$"#,##0\\)\nP;P"$"#,##0.00_);;\\("$"#,##0.00\\)\nP;P"$"#,##0.00_);;[Red]\\("$"#,##0.00\\)\nP;P0%\nP;P0.00%\nP;P0.00E+00\nP;P##0.0E+0\nP;P#\\ ?/?\nP;P#\\ ??/??\nP;Pm/d/yyyy\nP;Pd\\-mmm\\-yy\nP;Pd\\-mmm\nP;Pmmm\\-yy\nP;Ph:mm\\ AM/PM\nP;Ph:mm:ss\\ AM/PM\nP;Ph:mm\nP;Ph:mm:ss\nP;Pm/d/yyyy\\ h:mm\nP;Pmm:ss\nP;Pmm:ss.0\nP;P@\nP;P[h]:mm:ss\nP;P_("$"* #,##0_);;_("$"* \\(#,##0\\);;_("$"* "-"_);;_(@_)\nP;P_(* #,##0_);;_(* \\(#,##0\\);;_(* "-"_);;_(@_)\nP;P_("$"* #,##0.00_);;_("$"* \\(#,##0.00\\);;_("$"* "-"??_);;_(@_)\nP;P_(* #,##0.00_);;_(* \\(#,##0.00\\);;_(* "-"??_);;_(@_)\nP;P_(* #,##0.000_);;_(* \\(#,##0.000\\);;_(* "-"??_);;_(@_)\nP;P_(* #,##0.0000_);;_(* \\(#,##0.0000\\);;_(* "-"??_);;_(@_)\nP;P_(* #,##0.0_);;_(* \\(#,##0.0\\);;_(* "-"??_);;_(@_)\nP;P_(* #,##0_);;_(* \\(#,##0\\);;_(* "-"??_);;_(@_)\nP;Pmmm\\-yyyy\nP;FCalibri;M220;L9\nP;FCalibri;M220;L9\nP;FCalibri;M220;L9\nP;FCalibri;M220;L9\nP;ECalibri;M220;L9\nP;ECambria;M360;SB;L57\nP;ECalibri;M300;SB;L57\nP;ECalibri;M260;SB;L57\nP;ECalibri;M220;SB;L57\nP;ECalibri;M220;L18\nP;ECalibri;M220;L21\nP;ECalibri;M220;L61\nP;ECalibri;M220;L63\nP;ECalibri;M220;SB;L64\nP;ECalibri;M220;SB;L53\nP;ECalibri;M220;L53\nP;ECalibri;M220;SB;L10\nP;ECalibri;M220;L11\nP;ECalibri;M220;SI;L24\nP;ECalibri;M220;SB;L9\nP;ECalibri;M220;L10\nP;ECalibri;M220;L9\nP;ECambria;M360;SB;L57\nP;ECalibri;M300;SB;L57\nP;ECalibri;M260;SB;L57\nP;ECalibri;M220;SB;L57\nP;ECalibri;M220;L18\nP;ECalibri;M220;L21\nP;ECalibri;M220;L61\nP;ECalibri;M220;L63\nP;ECalibri;M220;SB;L64\nP;ECalibri;M220;SB;L53\nP;ECalibri;M220;L53\nP;ECalibri;M220;SB;L10\nP;ECalibri;M220;L11\nP;ECalibri;M220;SI;L24\nP;ECalibri;M220;SB;L9\nP;ECalibri;M220;L10\nF;P0;DG0G8;M300\n';
    
        var exported = header;
        //now handle col width
        for(var i=1; i<=columns.length; i++) {
            exported += "F;W"+i+" "+i+" 15\n";
        }
        ...
    }
    

0 个答案:

没有答案