1. 程式人生 > >Apache POI讀取和創建Excel ----01(簡單操作)

Apache POI讀取和創建Excel ----01(簡單操作)

學習記錄

public class ExcelCreatAndRead {


/**
* 使用Apache POI創建Excel文檔
* */
public static void createXL(){
/**Excel文件要存放的位置,假定在D盤下*/
String outputFile="D:\\test.xlsx";
try {
//創建新的Excel工作薄
XSSFWorkbook workbook =new XSSFWorkbook();

//在Excel工作薄建一工作表,其名為缺省值

// HSSFSheet sheet=workbook.createSheet();
//在Excel工作薄建一工作表,其名為“測試”
XSSFSheet sheet=workbook.createSheet("測試");

//創建第一行
XSSFRow row =sheet.createRow(0);
// row.createCell(0).setCellValue("學員信息");

//合並單元格
// sheet.addMergedRegion(new CellRangeAddress(0,0,0,1));

//在索引0的位置創建行(第一行)
XSSFRow row1=sheet.createRow(0);

//在索引0的位置創建列(第一列)
XSSFCell cell=row1.createCell(0);//畫橫線是代表此方法已過時,不建議使用;

//定義單元格為字符串類型(Excel-設置單元格格式-數字-文本;不設置默認為“常規”,也可以設置成其他的,具體設置參考相關文檔)
cell.setCellType(HSSFCell.CELL_TYPE_STRING);

//在單元格內輸入一些內容
cell.setCellValue("姓名");
row1.createCell(1).setCellValue("年齡");

//創建第二行:
XSSFRow row2=sheet.createRow(1);
row2.createCell(0).setCellValue("張三");
row2.createCell(1).setCellValue(18);

//創建第三行:
XSSFRow row3=sheet.createRow(2);
row3.createCell(0).setCellValue("李四");
row3.createCell(1).setCellValue(20);


//新建一輸出文件流
FileOutputStream fout=new FileOutputStream(outputFile);

//把相應的Excel工作薄存盤
workbook.write(fout);

//flush();
//java在使用流時,都會有一個緩沖區,按一種它認為比較高效的方法來發數據:把要發的數據先放到緩沖區,緩沖區放滿以後再一次性發過去,而不是分開一次一次地發.
//而flush()表示強制將緩沖區中的數據發送出去,不必等到緩沖區滿.
//所以如果在用流的時候,沒有用flush()這個方法,很多情況下會出現流的另一邊讀不到數據的問題,特別是在數據特別小的情況下.
fout.flush();

//操作結束,關閉文件
fout.close();
System.out.println("文件生成");

} catch (Exception e) {
// TODO Auto-generated catch block
System.out.println("已運行 xlCreate():"+e);
}

}
/**讀取Excel內容
* @throws FileNotFoundException */
public static void readExcel() throws FileNotFoundException{
FileInputStream file=new FileInputStream("D:\\test.xlsx");

try {
XSSFWorkbook workbook =new XSSFWorkbook(file);
XSSFSheet sheet=workbook.getSheet("測試");
XSSFRow row =sheet.getRow(0);
XSSFCell cell=row.getCell(0);
System.out.println(cell.getStringCellValue());


} catch (Exception e) {
// TODO Auto-generated catch block
System.out.println("已運行 readExcel():"+e);
}


//把導入的內容存在集合中裏
List temp =new ArrayList();
try {
XSSFWorkbook workbook =new XSSFWorkbook(new FileInputStream("D:\\test.xlsx"));
XSSFSheet sheet=workbook.getSheet("測試");
for(Row r:sheet){
if(r.getRowNum()<1){
continue;
}
String name=r.getCell(0).getStringCellValue();
int age=(int) r.getCell(1).getNumericCellValue();
temp.add(name);
temp.add(age);
}

file.close();

//遍歷list temp
Iterator it = temp.iterator();
while(it.hasNext()) {
System.out.print(it.next()+" ");
}
System.out.println();
System.out.println("讀取完成");

} catch (Exception e) {
// TODO Auto-generated catch block
System.out.println("已運行readExcel"+e);
}

}

public static void main(String[] args) throws FileNotFoundException {
createXL();//創建Excel文檔

readExcel();//讀取Excel內容

}

}

Apache POI讀取和創建Excel ----01(簡單操作)