Apache POI案例代碼詳解
簡(jiǎn)介:Apache POI 是一個(gè)處理Miscrosoft Office各種文件格式的開源項(xiàng)目。簡(jiǎn)單來說就是,我們可以使用POI在Java程序中對(duì)Miscrosoft Office各種文件進(jìn)行讀寫操作。
1、應(yīng)用場(chǎng)景
圖 1-1 Apache POI應(yīng)用場(chǎng)景
Apache POI應(yīng)用場(chǎng)景:
- 銀行網(wǎng)銀系統(tǒng)導(dǎo)出交易明細(xì)
- 各種業(yè)務(wù)系統(tǒng)導(dǎo)出Excel報(bào)表
- 批量導(dǎo)入業(yè)務(wù)數(shù)據(jù)
2、案例代碼
2.1 創(chuàng)建 Excel 文件
package com.sky.test;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class POITest {
public static void main(String[] args) throws IOException {
write();
}
/**
* 通過POI創(chuàng)建Excel文件并且寫入文件內(nèi)容
*/
public static void write() throws IOException {
//創(chuàng)建一個(gè)Excel文件
XSSFWorkbook excel = new XSSFWorkbook();
//創(chuàng)建Excel中的單元測(cè)
XSSFSheet sheet = excel.createSheet("info");
//在sheet中創(chuàng)建行對(duì)象,rownum編號(hào)從零開始
XSSFRow row = sheet.createRow(1);
//創(chuàng)建單元格并且寫入文件內(nèi)容
row.createCell(1).setCellValue("姓名");
row.createCell(2).setCellValue("城市");
//創(chuàng)建一個(gè)新行
XSSFRow row1 = sheet.createRow(2);
row1.createCell(1).setCellValue("王寧");
row1.createCell(2).setCellValue("亳州");
//創(chuàng)建一個(gè)新行
XSSFRow row2 = sheet.createRow(2);
row2.createCell(1).setCellValue("王寧");
row2.createCell(2).setCellValue("亳州");
//將內(nèi)存中的Excel表格存儲(chǔ)到指定的盤符下面
FileOutputStream fileOutputStream = new FileOutputStream(new File("D:\\info.xlsx"));
excel.write(fileOutputStream);
//關(guān)閉資源
excel.close();
fileOutputStream.close();
}
}2.2 讀取 Excel 文件
package com.sky.test;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.*;
public class POITest {
public static void main(String[] args) throws IOException {
read();
}
/**
* 通過POI讀取Excel文件
*/
public static void read() throws IOException{
FileInputStream fileInputStream = new FileInputStream(new File("D:\\info.xlsx"));
//創(chuàng)建一個(gè)Excel對(duì)象,用于讀取Excle數(shù)據(jù)
XSSFWorkbook excel = new XSSFWorkbook(fileInputStream);
//讀取Excel文件中的第一個(gè)Sheet頁(yè)
XSSFSheet sheet = excel.getSheetAt(0);
//獲取Sheet頁(yè)中有數(shù)據(jù)的最后一行
int lastRowNum = sheet.getLastRowNum();
for (int i = 1; i <= lastRowNum; i++) {
//獲取某一行
XSSFRow row = sheet.getRow(i);
//獲取當(dāng)前行的單元格對(duì)象
String cellValue1 = row.getCell(1).getStringCellValue();
String cellValue2 = row.getCell(2).getStringCellValue();
System.out.println(cellValue1 + " " + cellValue2);
}
//關(guān)閉資源
excel.close();
fileInputStream.close();
}
}到此這篇關(guān)于Apache POI案例詳解的文章就介紹到這了,更多相關(guān)Apache POI內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Linux內(nèi)核設(shè)備驅(qū)動(dòng)之系統(tǒng)調(diào)用筆記整理
今天小編就為大家分享一篇關(guān)于Linux內(nèi)核設(shè)備驅(qū)動(dòng)之系統(tǒng)調(diào)用筆記整理,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2018-12-12
Linux TC流控實(shí)現(xiàn)機(jī)制過程
Linux TC通過模塊化分層設(shè)計(jì)(Qdisc、Class、Filter、Policer、Action)實(shí)現(xiàn)靈活流量控制,支持從簡(jiǎn)單FIFO到復(fù)雜分層調(diào)度,其優(yōu)勢(shì)在于可擴(kuò)展性,但存在配置復(fù)雜、單核瓶頸及新技術(shù)整合等挑戰(zhàn)2025-09-09
Ubuntu16.04 靜態(tài)IP地址設(shè)置(NAT方式)
這篇文章主要介紹了Ubuntu16.04 靜態(tài)IP地址設(shè)置(NAT方式),詳細(xì)的介紹了為VMware虛擬機(jī)內(nèi)安裝的Ubuntu 16.04設(shè)置靜態(tài)IP地址NAT方式,有興趣的可以了解一下。2017-02-02
怎樣給centos系統(tǒng)擴(kuò)展磁盤分區(qū)的實(shí)現(xiàn)方法
這篇文章主要介紹了怎樣給centos系統(tǒng)擴(kuò)展磁盤分區(qū)的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12
Linux實(shí)現(xiàn)日志高效搜索與實(shí)時(shí)監(jiān)控的終極指南
在開發(fā)和運(yùn)維的世界里,日志(Log)是系統(tǒng)運(yùn)行的黑匣子,它記錄了程序的每一次心跳、每一次異常、每一次請(qǐng)求,如何快速定位問題、精準(zhǔn)提取關(guān)鍵信息,成為每個(gè)工程師必須掌握的核心技能,本文將帶你深入 Linux 日志排查的實(shí)戰(zhàn)世界,從基礎(chǔ)命令到高級(jí)技巧,需要的朋友可以參考下2025-10-10
Finalshell無法連接Vmware虛擬機(jī)的解決方案
這篇文章主要介紹了Finalshell無法連接Vmware虛擬機(jī)的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2026-03-03

