JSTL 将数字导出为文本到 excel



您好,我目前正在使用 JSTL 将字符串列表导出到 Excel

我正在循环浏览要导出的值列表,即使当我有类似"001"的东西时,这些值被定义为字符串在我的 excel 页面上,我得到"1",同一个列表包含"XXX"之类的值因此我认为 excel 会足够聪明,知道我有字符串列表,而不是数字列表。

我的第一个解决方法是为每个值添加一个尾随空格,但这不是一个优雅的解决方案。

告诉 excel 我的列表是由字符串组成的最佳方法是什么并导出列表中的值?

这是我目前正在做的事情的示例:

我找到了一个可行的解决方案,实际上可以格式化 excel 单元格通过 CSS,就我而言,添加具有以下格式的 CSS 类就足够了致感兴趣的TD

<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 数字格式设置 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:"022£022#,##0.00"    //£12.76
mso-number-format:"#,##0.00_ ;[Red]-#,##0.00 "   //2 decimals, negative numbers in red and signed (1.56 -1.56)

最新更新