※寫檔
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);
沒有留言:
張貼留言