1. 程式人生 > 其它 >筆記:java下的excel操作,基於org.apache.poi

筆記:java下的excel操作,基於org.apache.poi

技術標籤:JAVAjavaexcel

在萬物皆物件的java中如何操作一個excel檔案?無非就是將excel看做一個可操作的物件(java真是流氓,看誰都是他物件╭(╯^╰)╮)

該物件有如下基礎屬性:

1.sheet,也就是我們在表格中的一頁

2.row,表格中一橫排,行表示

3.cell,表格中的列

常見的excel檔案有兩種:xls,xlsx。從某度copy過來的:

1、檔案格式不同。xls 是一個特有的二進位制格式,其核心結構是複合文件型別的結構,bai而 xlsx 的核心結構是 XML 型別的結構,採用的是基於 XML 的壓縮方式,使其佔用的空間更小。xlsx 中最後一個 x 的意義就在於此。

2、版本不同。xls是excel2003及以前版本生成的檔案格式,而xlsx是excel2007及以後版本生成的檔案格式。

3、相容性不同。xlsx格式是向下相容的,可相容xls格式

說明一下:XSSFWorkbook是建立xlsx,用於儲存大量資料HSSFWorkbook 建立xls檔案,儲存量少。其他操作都是一樣的

如果要用程式碼匯出一個excel檔案需要怎麼做?

導包導包導包。。。。一定別忘了org.apache.poi的包

        //建立excel的檔案物件,包含一個 sheet(表),有標題,有cell(單元格列),有row(行)
	    XSSFWorkbook workbook =  new XSSFWorkbook();
		//建立一個表
		XSSFSheet sheet = workbook.createSheet("user");
		//建立標題欄,第一行也就是表頭
		XSSFRow titleRow = sheet.createRow(0);
        //定義標題欄,用陣列和list都闊以,根據自己實際需要
        List<String> titleList = new ArrayList<String>();
		titleList.add("姓名");
		titleList.add("性別");
		titleList.add("年齡");
		//將標題欄資料寫入
		for(int i =0;i<titleList.size();i++) {
			XSSFCell cell = titleRow.createCell(i);
			cell.setCellValue(titleList.get(i));
		}
		//根據自己資料量大小,將資料寫入到每一行,1代表除標題之外的第一行
		XSSFRow rowInfo = sheet.createRow(1);
		rowInfo.createCell(0).setCellValue(user.getUsername());
		rowInfo.createCell(1).setCellValue(user.getSex());
		rowInfo.createCell(2).setCellValue(user.getAge());
		//儲存檔案
		workbook.write(new FileOutputStream("E:\\myfile/test.xls"));

1.建立excel的物件

2.建立sheet

3.指定該sheet中的首行,也就是你的表頭

4.根據實際情況錄入自己的資料

5.指定匯出即可

基礎操作就是這樣了,如果是springboot,請在pom檔案中增加對於依賴,具體版本根據自己需要而定

    <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
            <version>3.4</version>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>3.4</version>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml-schemas</artifactId>
            <version>3.4</version>
        </dependency>