目的:導出的Excel模板,某些單元格要是文本形式,如下圖
我之前想當然的用cell.setCellType(HSSFCell.CELL_TYPE_STRING),但是發現沒有效果。實際POI對Excel單元格格式的設置是用
HSSFDataFormat
這個類。如下代碼可以實現設置為文本格式:
HSSFCellStyle cellStyle= workbook.createCellStyle(); HSSFDataFormat format = workbook.createDataFormat(); cellStyle.setDataFormat(format.getFormat("@")); cell.setCellStyle(cellStyle);
關于其他格式,可以參考POI的doc
0, "General" 1, "0" 2, "0.00" 3, "#,##0" 4, "#,##0.00" 5, "($#,##0_);($#,##0)" 6, "($#,##0_);[Red]($#,##0)" 7, "($#,##0.00);($#,##0.00)" 8, "($#,##0.00_);[Red]($#,##0.00)" 9, "0%" 0xa, "0.00%" 0xb, "0.00E+00" 0xc, "# ?/?" 0xd, "# ??/??" 0xe, "m/d/yy" 0xf, "d-mmm-yy" 0x10, "d-mmm" 0x11, "mmm-yy" 0x12, "h:mm AM/PM" 0x13, "h:mm:ss AM/PM" 0x14, "h:mm" 0x15, "h:mm:ss" 0x16, "m/d/yy h:mm" // 0x17 - 0x24 reserved for international and undocumented 0x25, "(#,##0_);(#,##0)" 0x26, "(#,##0_);[Red](#,##0)" 0x27, "(#,##0.00_);(#,##0.00)" 0x28, "(#,##0.00_);[Red](#,##0.00)" 0x29, "_(*#,##0_);_(*(#,##0);_(* \"-\"_);_(@_)" 0x2a, "_($*#,##0_);_($*(#,##0);_($* \"-\"_);_(@_)" 0x2b, "_(*#,##0.00_);_(*(#,##0.00);_(*\"-\"??_);_(@_)" 0x2c, "_($*#,##0.00_);_($*(#,##0.00);_($*\"-\"??_);_(@_)" 0x2d, "mm:ss" 0x2e, "[h]:mm:ss" 0x2f, "mm:ss.0" 0x30, "##0.0E+0" 0x31, "@" - This is text format. 0x31 "text" - Alias for "@"
第一個參數是index 后面一個是String 格式的format
我用的是poi-3.2-FINAL做的測試。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
