3

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

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

所以我的问题是:

  1. 是否有其他开源类可以用来编写此代码
  2. 是否有任何网站可以向我展示每个字符串代表什么(哪种风格),所以我可以使用 HSSFWorkbook 类初始化写入

谢谢伊多

我当前的函数是这样开始的,看起来不太好(它在 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";
    }
    ...
}
4

0 回答 0