[英]Formatting excel cells using Java from String to Number
我正在嘗試將第5列的格式設置為數字。 我知道格式化可以通過setCellStyle完成,但是如何在下面的代碼中實現相同的格式?
FileInputStream ExcelFileToRead = null;
HSSFWorkbook wb = null;
FileOutputStream outputStream = null;
short colNum = 5;
try {
ExcelFileToRead = new FileInputStream("config/test/test.xls");
} catch (FileNotFoundException e) {
e.printStackTrace();
}
try {
wb = new HSSFWorkbook(ExcelFileToRead);
} catch (IOException e) {
e.printStackTrace();
}
HSSFSheet sheet = wb.getSheetAt(0);
HSSFCell cell = null;
HSSFRow row = null;
sheet.createRow(0).createCell((short) 6).setCellValue("100");
sheet.createRow(3).createCell(colNum).setCellValue("120");
sheet.createRow(5).createCell(colNum).setCellValue("300");
sheet.createRow(11).createCell(colNum).setCellValue("500");
sheet.createRow(15).createCell(colNum).setCellValue("900");
sheet.createRow(18).createCell(colNum).setCellValue("1000");
sheet.createRow(23).createCell(colNum).setCellValue("10");
sheet.createRow(28).createCell(colNum).setCellValue("20");
sheet.createRow(30).createCell(colNum).setCellValue("30");
sheet.createRow(49).createCell(colNum).setCellValue("40");
outputStream = new FileOutputStream("config/test/test.xls");
wb.write(outputStream);
outputStream.close();
您可以通過將CellStyle對象傳遞給工作表對象的setDefaultColumnStyle()
方法來設置默認列樣式。 格式是從您傳遞的字符串中解析出來的。 因此, "0"
是一個整數, "0.0"
是一個十進制到1個小數位, "0.00"
是一個十進制到2個小數位, HSSFDataFormat.getBuiltinFormats()
還有很多其他內容,您可以使用HSSFDataFormat.getBuiltinFormats()
查看格式列表HSSFDataFormat.getBuiltinFormats()
。
您還應該以數字類型而不是字符串的形式傳遞值,否則它們的單元格值將是文本而不是數字。
這是將整個列設置為數字的示例。
public static void main(String[] args) throws Exception {
short colNum = 5;
FileInputStream workbookStream = new FileInputStream("config/test/test.xls");
HSSFWorkbook workbook = new HSSFWorkbook(workbookStream);
HSSFSheet worksheet = workbook.getSheetAt(0);
// set column style here
DataFormat dataFormat = workbook.createDataFormat();
CellStyle cellStyle = workbook.createCellStyle();
cellStyle.setDataFormat(dataFormat.getFormat("0"));
worksheet.setDefaultColumnStyle(colNum, cellStyle);
worksheet.createRow(0).createCell((short)6).setCellValue(100);
//...
worksheet.createRow(49).createCell(colNum).setCellValue(40);
FileOutputStream outputStream = new FileOutputStream("config/test/test.xls");
workbook.write(outputStream);
outputStream.close();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.