2018年6月15日 星期五

使用JAVA簡易操作Excel

報表是很多工作都需要的功能之一;也因為如此,也有很多機會將需要資料匯出成為Excel表格。
雖然打開Excel能做的操作很多很複雜,但是利用Apache POI就可以來處理很多Excel相關的操作。
但在下只是個菜鳥工程師;所以今天要談的是一些基本的操作 XD

-------------------------------------- 分隔線 ----------------------------------------

import java.io.FileOutputStream;

import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.streaming.SXSSFWorkbook;

public class TryCode {

  public void export() {
  //檔案要存放的位置
        String outputFile = "E:/test.xls"; 

  Workbook wb = new SXSSFWorkbook();//創建工作簿
  Sheet sh = wb.createSheet("testSheet");//創建名為"testSheet"的工作表(頁?)

  //創建儲存格風格
  CellStyle allBorder = wb.createCellStyle();
  allBorder.setBorderTop(CellStyle.BORDER_THIN); //上邊線設定
  allBorder.setBorderBottom(CellStyle.BORDER_THIN); //下邊線設定
  allBorder.setBorderLeft(CellStyle.BORDER_THIN); //左邊線設定
  allBorder.setBorderRight(CellStyle.BORDER_THIN); //右邊線設定
  //以上邊線設定都是CellStyle.BORDER_THIN 細線
  allBorder.setVerticalAlignment(CellStyle.VERTICAL_CENTER); //內文置中

  Row row_0 = sh.createRow(0); //創建列(0表示第一列,數字"1";依此類推)
  Cell cell_0_0 = row_0.createCell(0); //創列欄(row列的第一欄,字母"A";依此類推)
  cell_0_0.setCellValue("ABC"); //在cell_0的儲存格放入內文"ABC"
  cell_0_0.setCellStyle(allBorder); //設定儲存格風格

  //以下依此類推,創建第二列,再依序創建欄放入內文
  Row row_1 = sh.createRow(1);
  Cell cell_1_0 = row_1.createCell(0);
  cell_1_0.setCellValue("DEF");
  cell_1_0.setCellStyle(allBorder);
  Cell cell_1_1 = row_1.createCell(1); //創列欄(row列的第二欄,字母"B";依此類推)
  cell_1_1.setCellValue("GHI");
  cell_1_1.setCellStyle(allBorder);

  try {
  //匯出檔案
  FileOutputStream os= new FileOutputStream(outputFile); 
  wb.write(os); 
            wb.close();
  os.flush(); 
  os.close(); 
  } catch (Exception e) {
  e.printStackTrace();
  }
  }

}

-------------------------------------- 分隔線 ----------------------------------------
執行結果會變成這樣子:




沒有留言:

張貼留言