Apache POI 创建 Excel

news/2024/12/31 1:40:57/文章来源:https://www.cnblogs.com/luo630/p/18387024

数据来自 通义千问🎈

 

依赖包

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

v5.2.2。

 

创建Excel

xlsx 格式。

 

简单版

创建一个包含数据的 Excel 文件

import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Date;public class ExcelWriter {public static void main(String[] args) {try (Workbook workbook = new XSSFWorkbook(); // 创建一个新的 xlsx 工作簿FileOutputStream fileOut = new FileOutputStream("output.xlsx")) { // 创建一个输出流// 创建一个工作表Sheet sheet = workbook.createSheet("Sheet1");// 创建一行Row row = sheet.createRow(0);// 创建单元格并填充数据Cell cell = row.createCell(0);cell.setCellValue("Hello World!");cell = row.createCell(1);cell.setCellValue(new Date());// 写入文件workbook.write(fileOut);System.out.println("Excel file created successfully.");} catch (IOException e) {e.printStackTrace();}}
}

 

进阶版

创建更复杂的 Excel 文件

import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;import java.io.FileOutputStream;
import java.io.IOException;public class ExcelComplexWriter {public static void main(String[] args) {try (Workbook workbook = new XSSFWorkbook(); // 创建一个新的 xlsx 工作簿FileOutputStream fileOut = new FileOutputStream("output_complex.xlsx")) { // 创建一个输出流// 创建一个工作表Sheet sheet = workbook.createSheet("Sheet1");// 创建一行Row row = sheet.createRow(0);// 创建单元格并填充数据Cell cell = row.createCell(0);cell.setCellValue("Name");cell = row.createCell(1);cell.setCellValue("Age");// 创建第二个行row = sheet.createRow(1);cell = row.createCell(0);cell.setCellValue("John Doe");cell = row.createCell(1);cell.setCellValue(30);// 设置样式CellStyle style = workbook.createCellStyle();style.setFillForegroundColor(IndexedColors.YELLOW.getIndex());style.setFillPattern(FillPatternType.SOLID_FOREGROUND);// 应用样式cell = row.createCell(2);cell.setCellValue("New York");cell.setCellStyle(style);// 写入文件workbook.write(fileOut);System.out.println("Excel file created successfully.");} catch (IOException e) {e.printStackTrace();}}
}

 

一些Excel的设置

列宽、单元格自动换行。

import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;import java.io.FileOutputStream;
import java.io.IOException;public class ExcelWriterWithWidthAndWrap {public static void main(String[] args) {try (Workbook workbook = new XSSFWorkbook(); // 创建一个新的 xlsx 工作簿FileOutputStream fileOut = new FileOutputStream("output_with_width_and_wrap.xlsx")) { // 创建一个输出流// 创建一个工作表Sheet sheet = workbook.createSheet("Sheet1");// 设置列宽sheet.setColumnWidth(0, 20 * 256); // 设置第一列的宽度为 20 个字符sheet.setColumnWidth(1, 40 * 256); // 设置第二列的宽度为 40 个字符// 创建一行Row row = sheet.createRow(0);// 创建单元格并填充数据Cell cell = row.createCell(0);cell.setCellValue("Hello World!");cell = row.createCell(1);cell.setCellValue("This is a very long sentence that needs to be wrapped automatically.");// 设置样式CellStyle style = workbook.createCellStyle();style.setFillForegroundColor(IndexedColors.YELLOW.getIndex());style.setFillPattern(FillPatternType.SOLID_FOREGROUND);style.setWrapText(true); // 设置自动换行// 应用样式cell.setCellStyle(style);// 写入文件workbook.write(fileOut);System.out.println("Excel file created successfully.");} catch (IOException e) {e.printStackTrace();}}
}

 

Apache POI 官网

https://poi.apache.org/apidocs/index.html

 

5.0.x 的文档:

https://poi.apache.org/apidocs/5.0/

 

---END---

 

本文链接:

https://www.cnblogs.com/luo630/p/18387024

 

ben发布于博客园

ben发布于博客园

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/807093.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CTB2024

RT活动官网 https://www.chinathinksbig.com/ To DoIMPORTANT 10.14 提前批报名截止 确认要参加的话赶紧把钱交了先注意:付钱(1490 好贵)之后才能组队在国庆期间开个会 大致考虑一下课题,尽量可以拐一下以下几个点弱势群体 环境保护 文化保护和传承一些东西

10.1 ~ 10.6

国庆10.1 你说的对,但是我们今天还要打模拟赛; 但是打完模拟赛就放假 那我什么时间改呢 😅 开题。一眼就看到了 Delov,gtm 和 joke; 学长限时回归了? T1 想了半天 \(O(n)\) 之后发现可以 \(O(n \log n)\),打。打完过了全部大样例,直接开 T2。 T2 上来第一眼树剖板子,…

git学习笔记 1

1、安装配置 git 安装:https://git-scm.com/book/zh/v2/起步-安装-Git 文档:https://git-scm.com/docs 初次配置git config --global user.name "你的名字"git config --global user.email "你的邮箱"检测配置是否成功 git config --list在里面找到 user…

高级语言程序设计课程第二次作业

班级链接:https://edu.cnblogs.com/campus/fzu 作业要求链接:https://edu.cnblogs.com/campus/fzu/2024C/homework/13282 学号:102400204 姓名:刘嘉奕 3.11编程作业 作业1作业2作业3双引号的打印需要使用转义序列作业4第一个打印中value后的%f去掉,打印p计数法用%a作业5作…

CF589H Tourist Guide

昨晚码敲完了没保存,导致还原卡直接把我码肘没了。。。 气死了只能重新敲了一遍。 题面 Tourist Guide 分析 考虑每一个联通块分开处理。 先将每一个联通块变为生成树,任意生成方式皆可。 对于每一个联通块,一定可以构造一种组合方法,使得该联通块中最多只有一个关键点无法…

2024新生赛-Week1

F12 快捷键f12直接查看字符串 xor 了解一下XOR运算,AB=C,CA=B 使用a数组对输入的字符进行循环运算取出最终的字符串再进行一次xor即可得到flag Ezencode进入加密函数后发现是一个base64算法,对表进行了替换,最后有对编码得到的结果进行异或操作. 提出最后的密文,进行异或,换表,…

DAY2-补题

我补题AK了,但你出言不逊是 非常好的一套题,让我的大脑旋转啊。 不太想开一个文章单独屑,所以扔到随笔里面。 敲字速度有待加强。 说在前面 题目难度单调递减,分数单调递减。果然屑死了。 T1再次读题失误,正确的来说是代码敲得非常抽象。T2DP但没骗到分非常不好,T3场上想…

独立站如何批量查收录,教你独立站如何批量查收录的方法操作步骤

独立站批量查收录是SEO优化工作中的重要环节,有助于网站管理员或SEO人员及时了解网站在搜索引擎中的表现,从而制定针对性的优化策略。以下是一些常用的独立站批量查收录的方法及其操作步骤: 一、使用搜索引擎的Site指令结合自动化脚本 编写脚本或配置爬虫: 利用Python、She…

04-论说文:审题与立意(1)

命题作文 比较开放 近义词 相关性 竞争 合作 竞争合作 ==》 竞争合作的关系 概率==》风险 风险 利益 审题 较难

pycharm 拆分窗口, 取消分屏; VS code 分屏

Split Vertically 或者 Split Horizontally 可以把当前编辑窗口垂直或者水平拆分成两个。 Split Vertically或者Split Horizontally可以把当前编辑窗口垂直或者水平拆分成两个。 取消拆分窗口: VS code 分屏:

南沙C++信奥赛陈老师解一本通题 1966:【14NOIP普及组】比例简化

​【题目描述】在社交媒体上,经常会看到针对某一个观点同意与否的民意调查以及结果。例如,对某一观点表示支持的有 1498 人,反对的有 902 人,那么赞同与反对的比例可以简单的记为1498:902。 不过,如果把调查结果就以这种方式呈现出来,大多数人肯定不会满意。因为这个比例…

pycharm 拆分窗口 pycharm怎么分屏,取消分屏

Split Vertically 或者 Split Horizontally 可以把当前编辑窗口垂直或者水平拆分成两个。 Split Vertically或者Split Horizontally可以把当前编辑窗口垂直或者水平拆分成两个。 取消拆分窗口: