Apache POI用法示例詳解
一、Apache POI是什么
Apache POI是用Java編寫的免費(fèi)開源的跨平臺(tái)的Java API,Apache POI提供API給Java程序?qū)icrosoft Office格式檔案讀和寫的功能,其中使用最多的就是使用POI操作Excel文件。
二、POI結(jié)構(gòu)
HSSF - 提供讀寫Microsoft Excel XLS格式檔案的功能
XSSF - 提供讀寫Microsoft Excel OOXML XLSX格式檔案的功能
HWPF - 提供讀寫Microsoft Word DOC格式檔案的功能
HSLF - 提供讀寫Microsoft PowerPoint格式檔案的功能
HDGF - 提供讀Microsoft Visio格式檔案的功能
HPBF - 提供讀Microsoft Publisher格式檔案的功能
HSMF - 提供讀Microsoft Outlook格式檔案的功能
三、POI操作Excel
3.1從Excel讀取數(shù)據(jù)
//通過遍歷工作表獲得行,遍歷行獲得單元格,最終獲取單元格中的值。
//創(chuàng)建工作簿
XSSFWorkbook workbook = new XSSFWorkbook("D:\\hello.xlsx");
//獲取工作表,既可以根據(jù)工作表的順序獲取,也可以根據(jù)工作表的名稱獲取
XSSFSheet sheet = workbook.getSheetAt(0);
//遍歷工作表獲得行對(duì)象
for (Row row : sheet) {
//遍歷行對(duì)象獲取單元格對(duì)象
for (Cell cell : row) {
//獲得單元格中的值
String value = cell.getStringCellValue();
System.out.println(value);
}
}
workbook.close();POI操作Excel表格封裝了幾個(gè)核心對(duì)象:
XSSFWorkbook:工作簿 XSSFSheet:工作表 Row:行 Cell:單元格
3.2向Excel文件寫入數(shù)據(jù)
使用POI可以在內(nèi)存中創(chuàng)建一個(gè)Excel文件并將數(shù)據(jù)寫入到這個(gè)文件,最后通過輸出流將內(nèi)存中的Excel文件下載到磁盤
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFCell;
import java.io.FileOutputStream;
import java.io.IOException;
public class ExcelWriter {
public static void main(String[] args) {
// 創(chuàng)建一個(gè)新的XSSFWorkbook對(duì)象,代表整個(gè)Excel工作簿
XSSFWorkbook workbook = new XSSFWorkbook();
try {
// 創(chuàng)建一個(gè)新的工作表
XSSFSheet sheet = workbook.createSheet("Sheet1");
// 創(chuàng)建第一行
XSSFRow row = sheet.createRow(0);
// 創(chuàng)建第一行的第一個(gè)單元格,并設(shè)置值
XSSFCell cell = row.createCell(0);
cell.setCellValue("Hello, World!");
// 創(chuàng)建第二行
XSSFRow row2 = sheet.createRow(1);
// 創(chuàng)建第二行的第一個(gè)單元格,并設(shè)置值
XSSFCell cell2 = row2.createCell(0);
cell2.setCellValue("這是第二行");
// 將工作簿寫入到文件中
try (FileOutputStream outputStream = new FileOutputStream("output.xlsx")) {
workbook.write(outputStream);
}
System.out.println("Excel文件已成功創(chuàng)建并寫入數(shù)據(jù)");
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
// 關(guān)閉workbook
if (workbook != null) {
workbook.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}四、POI操作Word
4.1讀取 Word 文件
Apache POI 也可以用于讀取 Word 文件的內(nèi)容。
import org.apache.poi.xwpf.extractor.XWPFWordExtractor;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import java.io.FileInputStream;
import java.io.IOException;
public class WordReader {
public static void main(String[] args) {
try (FileInputStream fis = new FileInputStream("example.docx");
XWPFDocument document = new XWPFDocument(fis)) {
XWPFWordExtractor extractor = new XWPFWordExtractor(document);
String text = extractor.getText();
System.out.println(text);
} catch (IOException e) {
e.printStackTrace();
}
}
}4.2寫入 Word 文件
寫入 Word 文件也可以通過 Apache POI 來實(shí)現(xiàn)。
import org.apache.poi.xwpf.usermodel.*;
import java.io.FileOutputStream;
import java.io.IOException;
public class WordWriter {
public static void main(String[] args) {
// 創(chuàng)建文檔
XWPFDocument document = new XWPFDocument();
// 創(chuàng)建段落
XWPFParagraph paragraph = document.createParagraph();
XWPFRun run = paragraph.createRun();
run.setText("這是一個(gè)示例文檔。");
// 寫入文件
try (FileOutputStream fos = new FileOutputStream("output.docx")) {
document.write(fos);
} catch (IOException e) {
e.printStackTrace();
}
}
}五、深入學(xué)習(xí)
如果想要深入學(xué)習(xí) Apache POI,可以參考官方文檔:https://poi.apache.org/
到此這篇關(guān)于Apache POI用法示例詳解的文章就介紹到這了,更多相關(guān)Apache POI用法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Apache POI的基本使用詳解
- Java使用Apache.POI中HSSFWorkbook導(dǎo)出到Excel的實(shí)現(xiàn)方法
- Apache POI將PPT轉(zhuǎn)換成圖片實(shí)例代碼
- 基于apache poi根據(jù)模板導(dǎo)出excel的實(shí)現(xiàn)方法
- java后臺(tái)利用Apache poi 生成excel文檔提供前臺(tái)下載示例
- java Apache poi 對(duì)word doc文件進(jìn)行讀寫操作
- Java使用Apache POI庫讀取Excel表格文檔的示例
- Java中使用Apache POI讀取word文件簡單示例
相關(guān)文章
Windows下 Apache PHP 環(huán)境搭建的方法
經(jīng)常在 Linux 環(huán)境下搭建 php 環(huán)境,在 windows 下還是第一次,沒啥技術(shù)含量,就是記錄一下,需要的朋友參考下本教程2017-01-01
Ubuntu 18.04上安裝 phpMyAdmin的詳細(xì)教程
這篇文章主要介紹了Ubuntu 18.04上安裝 phpMyAdmin的詳細(xì)教程,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-12-12
詳解Linux 主機(jī)網(wǎng)絡(luò)接入配置
這篇文章主要介紹了詳解Linux 主機(jī)網(wǎng)絡(luò)接入配置的相關(guān)資料,希望通過本文能幫助到大家,讓大家實(shí)現(xiàn)網(wǎng)絡(luò)接入配置的功能,需要的朋友可以參考下2017-10-10
如何通過其他主機(jī)查看Apahce服務(wù)器的運(yùn)行狀態(tài)
這篇文章主要介紹了如何通過其他主機(jī)查看Apahce服務(wù)器的運(yùn)行狀態(tài),需要的朋友可以參考下2016-04-04
Apache Shiro 使用手冊(cè)(四) Realm 實(shí)現(xiàn)
在認(rèn)證、授權(quán)內(nèi)部實(shí)現(xiàn)機(jī)制中都有提到,最終處理都將交給Real進(jìn)行處理。因?yàn)樵赟hiro中,最終是通過Realm來獲取應(yīng)用程序中的用戶、角色及權(quán)限信息的2014-06-06
Ubuntu中實(shí)現(xiàn)定時(shí)喚醒與自動(dòng)休眠功能
在自動(dòng)化腳本執(zhí)行的時(shí)間段內(nèi)喚醒系統(tǒng)使其正常運(yùn)行,其余時(shí)間則讓其進(jìn)入休眠狀態(tài),以此來降低能耗,為達(dá)成這一目標(biāo),我編寫了一個(gè)簡易的腳本,并通過 crontab 配置了自動(dòng)化任務(wù),接下來,我會(huì)詳盡地講解整個(gè)配置過程,需要的朋友可以參考下2024-09-09
CentOS8.0 網(wǎng)絡(luò)配置的實(shí)現(xiàn)
這篇文章主要介紹了CentOS8.0 網(wǎng)絡(luò)配置的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10

