Apache POI 介紹與使用指南

文章框架

一、Apache POI 概述

  • 定義:Java API操作Microsoft Office格式文件

  • 核心功能:

    • 讀寫Excel(.xls, .xlsx)

    • 操作Word、PowerPoint等文檔

  • 優勢:開源免費、跨平臺、功能全面

二、環境準備

  1. Maven依賴配置:

            <!-- poi --><dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId></dependency><dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId></dependency>

?三、案例代碼

? ????????1.Excel寫入實戰(代碼解析)

public static void POITestWrite()throws Exception{//在內存中創建Excel文件XSSFWorkbook excel=new XSSFWorkbook();//在Excel文件創建一個sheet頁XSSFSheet sheet=excel.createSheet("sheet1");//在sheet對象頁中創建行 從0開始為第一行XSSFRow row1 = sheet.createRow(0);//在行上創建單元格,并寫入單元格內容 單元格也是從0開始 所以1是第二個單元格row1.createCell(1).setCellValue("姓名");row1.createCell(2).setCellValue("城市");//創建第二行XSSFRow row2 = sheet.createRow(1);row2.createCell(1).setCellValue("張三");row2.createCell(2).setCellValue("北京");//創建第三行XSSFRow row3 = sheet.createRow(2);row3.createCell(1).setCellValue("李四");row3.createCell(2).setCellValue("湖北");//創建輸出流FileOutputStream out = new FileOutputStream(new File("D:\\sheet1.xlsx"));//寫入數據excel.write(out);//關閉輸出流文件和excel文件excel.close();out.close();}

關鍵點說明:

  • createRow()/createCell()?創建行列

  • 單元格索引從0開始(A列=0, B列=1)

? ? ? ? 2.Excel讀取實戰(代碼解析)

    public static void POITaskRead() throws Exception{FileInputStream in = new FileInputStream(new File("D:\\sheet1.xlsx"));//讀取磁盤上的excel文件XSSFWorkbook excel = new XSSFWorkbook(in);//讀取excel中第一個sheet頁XSSFSheet sheet = excel.getSheetAt(0);//獲取sheet中創建最后一行的行號int lastRowNum = sheet.getLastRowNum();//遍歷行for (int i=0;i<=lastRowNum;i++){//獲取對應行XSSFRow row = sheet.getRow(i);if(row!=null){//獲取單元格內容String cellValue1 = row.getCell(1).getStringCellValue();String cellValue2 = row.getCell(2).getStringCellValue();System.out.println(cellValue1+" "+cellValue2);}}//關閉輸入流in.close();//關閉excelexcel.close();}

關鍵點說明:

  • getLastRowNum()?獲取最后一行索引

  • 單元格類型處理:getStringCellValue()/getNumericCellValue()

  • 空值處理建議:添加if (row != null)判斷

三、應用場景

  • 報表導出

  • 數據批量導入

  • 自動化測試數據生成

  • 財務數據分析

四、總結

  • Apache POI是Java操作Excel的首選方案

  • 提供從基礎讀寫到高級功能的完整API

  • 注意資源管理和異常處理確保穩定性

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/90799.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/90799.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/90799.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Redis--哨兵機制詳解

1. 哨兵機制簡介Redis Sentinel&#xff08;哨兵&#xff09;是Redis的高可用性解決方案&#xff0c;它提供了監控、通知、自動故障轉移和配置提供者等功能。Sentinel系統可以監控多個Redis主服務器及其從服務器&#xff0c;并在主服務器失效時自動進行故障轉移&#xff0c;確保…

無人機機體結構設計要點難點分析

一、 設計要點1.輕量化&#xff1a;核心目標&#xff1a; 最大程度減輕結構重量&#xff0c;提升有效載荷能力、續航時間、飛行速度和機動性。實現手段&#xff1a; 選用高比強度/比剛度材料&#xff08;碳纖維復合材料、航空鋁合金、鈦合金、工程塑料&#xff09;、拓撲優化、…

AI時代的數據庫革命:電科金倉的“融合+AI“戰略解析

在人工智能時代的大變局下&#xff0c;數據庫要走向何方&#xff1f; 7月15日&#xff0c;中國電科旗下金倉數據庫以一場名為“融合進化 智領未來”的發布會&#xff0c;提出了自己的核心主張&#xff1a;真正的未來數據庫&#xff0c;是“融合”為體&#xff0c;“AI”為用。電…

與deepseek的問答:dot net與Borland VCL的關系

Borland VCL與.NET/C#關系分析borland delphi如神一般地存在&#xff01;試分析.net、c#與Borland VCL的關系。Borland Delphi及其VCL&#xff08;Visual Component Library&#xff09;框架在軟件開發史上確實具有傳奇地位&#xff0c;尤其在Windows桌面應用開發領域。而隨著.…

SAP在未啟用負庫存的情況下,庫存卻出現了負數-補充S4 1709 BUG

SAP在未啟用負庫存的情況下&#xff0c;庫存卻出現了負數-補充S4 1709 BUG共用物料合并發料&#xff1a;單行發料數量沒有超過庫存數量&#xff0c;但合計發料數量超過庫存數量了&#xff0c;系統還是可以過賬&#xff0c;沒有任何提示&#xff0c;如下圖所示&#xff1a;庫存數…

SpringBoot項目中常見注解

RequiredArgsConstructor 注解 類上添加該注解&#xff0c;Lombok 會自動生成一個構造函數&#xff0c;用于注入 final 或 NonNull 修飾的字段 ConfigurationProperties注解 用于將配置文件中的屬性注入到某個類的字段上 sky:jwt:admin-secret-key: itcastadmin-ttl: 7200000ad…

一鍵修復ipynb,Jupyter Notebook損壞文件

背景最近在寫一個數據分析項目時&#xff0c;不幸遇到了 斷電導致電腦重啟 的突發情況。當我再次打開 Jupyter Notebook 文件&#xff08;.ipynb&#xff09;時&#xff0c;發現文件已經損壞&#xff0c;Jupyter 無法正常讀取它&#xff0c;甚至有時直接報錯&#xff1a;Unread…

React入門學習——指北指南(第三節)

React 組件 在前面的內容中,我們了解了 React 的基礎知識和入門案例。本節將深入探討 React 中最核心的概念之一 —— 組件。組件是構建 React 應用的基礎,理解組件的工作原理和使用方法,對于掌握 React 開發至關重要。 什么是組件? 在 React 中,組件是具有獨立功能和 …

容器化環境下的服務器性能瓶頸與優化策略

更多云服務器知識&#xff0c;盡在hostol.com在容器化環境中&#xff0c;性能優化并不是一個簡單的“加硬件”或“增加資源”就能解決的問題。隨著技術的進步&#xff0c;越來越多的公司選擇使用容器技術&#xff08;如Docker、Kubernetes&#xff09;來提高應用的靈活性、可移…

GaussDB 數據庫架構師修煉(八) 等待事件(2)-ASP報告分析

1 ASP報告簡介ASP-Active Sesion Profile &#xff08;活躍會話檔案信息&#xff09;&#xff0c;ASP每秒獲取活躍會話事件&#xff0c;放到內存中&#xff0c;內存中的數據達閾值&#xff0c;會落盤gs_asp表中。ASP Report根據輸入的時間段與slot個數&#xff0c;從內存和磁盤…

CentOS7 安裝 Redis

在 CentOS 7 上配置 Redis 服務器需要完成安裝、配置和服務管理。以下是詳細步驟&#xff1a;安裝 Redis安裝依賴&#xff1a;yum install -y gcc tcl下載并解壓 Redis&#xff1a;cd /usr/local/wget https://download.redis.io/releases/redis-6.2.6.tar.gztar -zxvf redis-6…

《C++ list 完全指南:從基礎到高效使用》

《C list 完全指南&#xff1a;從基礎到高效使用》 文章目錄《C list 完全指南&#xff1a;從基礎到高效使用》一、forward_list和list比較二、list的接口介紹1.list的構造2.list iterator的使用3.list的容量操作4.list的訪問操作5.list的其他操作接口三、list的迭代器失效四、…

CIU32L051 DMA+Lwrb環形隊列實現串口無阻塞性數據的收發 + 數據百分百不丟失的實現

1.Lwrb的介紹&#xff08;博主功能的實現是基于RT-thread系統實現&#xff09; Lwrb是由Tilen Majerle編寫的一個線程安全的環形隊列&#xff0c;通常與DMA配合實現數據的無阻塞性收發&#xff0c;同時&#xff0c;配合DMA的傳輸過半中斷&#xff0c;傳輸完成中斷&#xff0c;以…

【C++】C++ 的入門知識2

本篇文章主要講解 C 的入門語法知識引用、inline 關鍵字與 nullptr 關鍵字。 目錄 1 引用 1&#xff09; 引用的概念與定義 &#xff08;1&#xff09; 引用的概念 &#xff08;2&#xff09; 引用的定義 2&#xff09; 引用的特性 3&#xff09; 引用的使用場…

基于Kafka實現動態監聽topic功能

生命無罪&#xff0c;健康萬歲&#xff0c;我是laity。 我曾七次鄙視自己的靈魂&#xff1a; 第一次&#xff0c;當它本可進取時&#xff0c;卻故作謙卑&#xff1b; 第二次&#xff0c;當它在空虛時&#xff0c;用愛欲來填充&#xff1b; 第三次&#xff0c;在困難和容易之間&…

機械學習初識--什么是機械學習--機械學習有什么重要算法

一、什么是機械學習機器學習&#xff08;Machine Learning&#xff09;是人工智能&#xff08;AI&#xff09;的一個重要分支&#xff0c;它使計算機能夠通過數據自動學習規律、改進性能&#xff0c;并在沒有明確編程的情況下完成特定任務。其核心思想是讓機器從數據中 “學習”…

普通大學生大三這一年的想法

目錄 大三期間的經歷與反思 公益活動&#xff1a;社會責任感的體現 比賽&#xff1a;個人成長的助推器 培訓與思想提升 大學教育的本質與人才培養 構建自我的道與未來規劃 大學教育的未來與個人定位 結語 大三期間的經歷與反思 大三&#xff0c;大學生活的分水嶺&#…

Python——入門

目錄 變量 變量類型 動態類型 注釋 輸出輸入 運算符 算術運算符 關系運算符 邏輯運算符 賦值運算符 條件語句 循環語句 函數 函數作用域 函數嵌套調用 函數默認參數 關鍵字參數 列表 切片 列表遍歷 新增元素 查找元素 刪除元素 列表拼接 元組…

華為榮耀部分機型從鴻蒙降回EMUI的一種方法

一、準備說明 1、這里介紹使用華為手機助手、海外代理軟件結合固件將部分華為榮耀手機鴻蒙系統降級回EMUI系 統的一種方式&#xff1b; 2、需要降級的手機需要再出廠時內置系統為EMUI&#xff0c;出廠時為鴻蒙系統的無法進行降級操作&#xff1b; 3、降級有風險&#xff0…

maven <dependencyManagement>標簽的作用

作用 dependencyManagement標簽的作用&#xff1a;在父工程pom文件中聲明依賴&#xff0c;但不引入&#xff1b;在子工程中用到聲明的依賴時&#xff0c;可以不加依賴的版本號&#xff0c;這樣可以統一管理工程中用到的依賴版本。 示例 先創建一個項目 dependencyManagement-de…