0

こんにちは私は現在、文字列のリストをJSTLを使用してExcelにエクスポートしています

エクスポートする値のリストを循環しています。Excelページに「001」のような値がある場合に値が文字列として定義されていても、「1」が表示されるので、同じリストに「XXX」のような値が含まれていると思いました。エクセルは、私が数字ではなく文字列のリストを持っていることを知るのに十分賢いでしょう。

私の最初の回避策は、すべての値に末尾のスペースを追加することでしたが、それはそれほどエレガントなソリューションではありません。

私のリストが文字列で構成されていることをExcelに伝え、リストのように値をエクスポートするための最良の方法は何ですか?

これが私が現在行っていることのサンプルです:

4

1 に答える 1

0

私は実行可能な解決策を見つけました。実際にはCSSを介してExcelセルをフォーマットすることが可能です。私の場合、関心のあるTDに次のフォーマットのCSSクラスを追加するだけで十分でした。

<style type="text/css">
    .excel_data_value_string{   
    mso-number-format:"\@";
}
</style>

<c:forEach var="object" items="${objectList}">
    <td class="excel_data_value_string">
        <c:out value="${object.value}"/>
    </td>
</c:forEach>

これは、列を文字列として扱う必要があることを指定します。興味のある人のために、出力をフォーマットする他の多くの方法があります。

mso-number-formatを使用したExcelセルのスタイリング

mso-number-format:"0"                       //NO Decimals
mso-number-format:"0\.000"                  //3 Decimals
mso-number-format:"\#\,\#\#0\.000"          //Comma with 3 dec
mso-number-format:"mm\/dd\/yy"              //Date7
mso-number-format:"mmmm\ d\,\ yyyy"         //Date9
mso-number-format:"m\/d\/yy\ h\:mm\ AM\/PM" //D -T AMPM
mso-number-format:"Short Date"              //01/03/1998
mso-number-format:"Medium Date"             //01-mar-98
mso-number-format:"d\-mmm\-yyyy"            //01-mar-1998
mso-number-format:"Short Time"              //5:16
mso-number-format:"Medium Time"             //5:16 am
mso-number-format:"Long Time"               //5:16:21:00
mso-number-format:"Percent"                 //Percent - two decimals
mso-number-format:"0%"                      //Percent - no decimals
mso-number-format:"0\.E+00"                 //Scientific Notation
mso-number-format:"\@"                      //Text
mso-number-format:"\#\ ???\/???"            //Fractions - up to 3 digits (312/943)
mso-number-format:"\0022£\0022\#\,\#\#0\.00"    //£12.76
mso-number-format:"\#\,\#\#0\.00_ \;\[Red\]\-\#\,\#\#0\.00\ "   //2 decimals, negative numbers in red and signed (1.56 -1.56)
于 2012-12-04T10:11:38.183 に答える