※寫檔
public class TestExcel { /** * Excel左邊的數字,程式碼是從0開始的,不直覺,此方法傳進來的數字會轉換成和Excel一樣 * * @param leftDigit * @return */ private static int viewRow(int leftDigit) { return leftDigit - 1; } /** * Excel上面的英文字,程式碼是從0開始的,不直覺,此方法傳進來的字元會轉換成和Excel一樣,只適用A~Z * * @param topEngWord * @return */ private static int viewCell(char topEngWord) { return topEngWord - 65; } public static void main(String[] args) { HSSFWorkbook excelbook = new HSSFWorkbook(); HSSFSheet sheet = excelbook.createSheet("xxx");// 創建工作表 // ※1A原始的字 HSSFRow row1 = sheet.createRow(TestExcel.viewRow(1)); HSSFCell cellA = row1.createCell(TestExcel.viewCell('A')); cellA.setCellValue("originalfasddddddddddddddd"); // ※1B紅色的字 HSSFCell cellB = row1.createCell(TestExcel.viewCell('B')); // 如果改成以下寫法,會變成後者蓋前者,所以1A會什麼都沒有 // HSSFCell cellB = // sheet.createRow(TestExcel.viewRow(1)).createCell(TestExcel.viewCell('B')); cellB.setCellValue("我想紅"); // 多下面的程式碼 HSSFCellStyle cellFontStyle = excelbook.createCellStyle(); Font font = excelbook.createFont(); font.setColor(HSSFColor.RED.index);// 紅色 font.setFontHeightInPoints((short) 20);// 字體大小 // font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);// 粗體 cellFontStyle.setFont(font); // cellFontStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);//左右對齊 // cellFontStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_TOP);//上下對齊 // cellFontStyle.setWrapText(true);// 自動換行 cellB.setCellStyle(cellFontStyle); // ※1C背景色 HSSFCell cellC = row1.createCell(TestExcel.viewCell('C')); cellC.setCellValue("綠背景"); HSSFCellStyle cellBackgroundColor = excelbook.createCellStyle(); cellBackgroundColor.setFillForegroundColor(HSSFColor.GREEN.index); cellBackgroundColor.setFillPattern((short) 1); cellC.setCellStyle(cellBackgroundColor); // 欄位高度、寬度 // row1.setHeightInPoints(50); // sheet.setColumnWidth(0, 12 * 512); // 設定欄位寬度 // sheet.autoSizeColumn(0); //自動調整欄位寬度,字變大調的不是很好,0是指A欄 try (FileOutputStream out = new FileOutputStream("D:/Excel.xls")) { excelbook.write(out); out.flush(); } catch (Exception e) { e.printStackTrace(); System.exit(1); } System.out.println("檔案建立成功!"); } }這裡有官方的範例
這邊也是,點Available Examples的HSSF-Only或XSSF-Only,然後隨便點一個,有很多可參考
※讀檔
HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream("D:/getExcel.xls")); // HSSFSheet sheet = workbook.getSheet("Sheet1"); HSSFSheet sheet = workbook.getSheetAt(0);// 第一張工作表, 兩種方法擇其一 // 讀取A1 HSSFRow row = sheet.getRow(0); HSSFCell cell = row.getCell(0); System.out.println("A1=: " + cell);
沒有留言:
張貼留言