Quantcast
Channel: 簡睿隨筆
Viewing all articles
Browse latest Browse all 897

修正以Apache POI產生Excel數值型文字的問題

$
0
0

使用Apache POI產生的Excel有一個問題: 0 開頭的文字在雙擊該Cell並離開後,開頭的 0 會被刪除,例如電話儲存格為 0800080412,雙擊並離開該儲存格後會變成 800080412。

▼儲存格一開始是000101
first

▼雙擊並離開該欄後會變成 101,開頭的000消失了
2nd

雖然我們在使用POI時有指定 CELL_TYPE_STRING:

cell.setCellType(HSSFCell.CELL_TYPE_STRING);

但這只是把儲存格變成通用格式,通用格式在編修後會刪掉開頭的 0。我們必須將儲存格的DataFormat指定為文字格式才能避免此問題。範例如下:

  HSSFCellStyle cellStyle = demoWorkBook.createCellStyle();
  HSSFDataFormat format = demoWorkBook.createDataFormat();
  // format.getFormat("@") = 49, 儲存格文字格式
  cellStyle.setDataFormat(format.getFormat("@"));
  cell.setCellStyle(cellStyle);

參考

##

您可能也會有興趣的類似文章

The post 修正以Apache POI產生Excel數值型文字的問題 appeared first on 簡睿隨筆.


Viewing all articles
Browse latest Browse all 897

Trending Articles