在Java中使用Apache POI导入导出Excel(二)

本文将继续介绍POI的使用,上接在Java中使用Apache POI导入导出Excel(一)

使用Apache POI组件操作Excel(二)

14、读取和重写工作簿

try (InputStream inp = new FileInputStream("workbook.xls")) {
//InputStream inp = new FileInputStream("workbook.xlsx");Workbook wb = WorkbookFactory.create(inp);Sheet sheet = wb.getSheetAt(0);Row row = sheet.getRow(2);Cell cell = row.getCell(3);if (cell == null)cell = row.createCell(3);cell.setCellType(CellType.STRING);cell.setCellValue("a test");// Write the output to a filetry (OutputStream fileOut = new FileOutputStream("workbook.xls")) {wb.write(fileOut);}
}

15、在单元格中使用换行符

Workbook wb = new XSSFWorkbook(); 
Sheet sheet = wb.createSheet();Row row = sheet.createRow(2);Cell cell = row.createCell(2);
cell.setCellValue("Use \n with word wrap on to create a new line");//to enable newlines you need set a cell styles with wrap=true
CellStyle cs = wb.createCellStyle();
cs.setWrapText(true);
cell.setCellStyle(cs);//increase row height to accommodate two lines of text
row.setHeightInPoints((2*sheet.getDefaultRowHeightInPoints()));//adjust column width to fit the content
sheet.autoSizeColumn(2);try (OutputStream fileOut = new FileOutputStream("ooxml-newlines.xlsx")) {wb.write(fileOut);
}
wb.close();

16、数据格式

Workbook wb = new XSSFWorkbook();
Sheet sheet = wb.createSheet("format sheet");CellStyle style;
DataFormat format = wb.createDataFormat();Row row;
Cell cell;int rowNum = 0;
int colNum = 0;row = sheet.createRow(rowNum++);cell = row.createCell(colNum);
cell.setCellValue(11111.25);style = wb.createCellStyle();
style.setDataFormat(format.getFormat("0.0"));
cell.setCellStyle(style);row = sheet.createRow(rowNum++);cell = row.createCell(colNum);cell.setCellValue(11111.25);style = wb.createCellStyle();
style.setDataFormat(format.getFormat("#,##0.0000"));
cell.setCellStyle(style);try (OutputStream fileOut = new FileOutputStream("workbook.xls")) {wb.write(fileOut);
}
wb.close();

17、使工作表适合一页

Workbook wb = new XSSFWorkbook();
Sheet sheet = wb.createSheet("format sheet");PrintSetup ps = sheet.getPrintSetup();sheet.setAutobreaks(true);ps.setFitHeight((short)1);
ps.setFitWidth((short)1);// Create various cells and rows for spreadsheet.
try (OutputStream fileOut = new FileOutputStream("workbook.xls")) {wb.write(fileOut);
}
wb.close();

18、设置打印区域

Workbook wb = new XSSFWorkbook();
Sheet sheet = wb.createSheet("Sheet1");//sets the print area for the first sheet
wb.setPrintArea(0, "$A$1:$C$2");//Alternatively:
wb.setPrintArea(0, //sheet index0, //start column1, //end column0, //start row0  //end row
);try (OutputStream fileOut = new FileOutputStream("workbook.xls")) {wb.write(fileOut);
}
wb.close();

19、在页脚上设置页码

Workbook wb = new XSSFWorkbook();
Sheet sheet = wb.createSheet("format sheet");Footer footer = sheet.getFooter();
footer.setRight( "Page " + HeaderFooter.page() + " of " + HeaderFooter.numPages() );// Create various cells and rows for spreadsheet.
try (OutputStream fileOut = new FileOutputStream("workbook.xls")) {wb.write(fileOut);
}
wb.close();

20、使用便捷函数

便利函数提供 实用程序功能,例如在合并周围设置边框 区域和更改样式属性而不明确 创建新样式。

Workbook wb = new XSSFWorkbook()
Sheet sheet1 = wb.createSheet( "new sheet" );// Create a merged region
Row row = sheet1.createRow( 1 );
Row row2 = sheet1.createRow( 2 );Cell cell = row.createCell( 1 );
cell.setCellValue( "This is a test of merging" );
CellRangeAddress region = CellRangeAddress.valueOf("B2:E5");sheet1.addMergedRegion( region );// Set the border and border colors.
RegionUtil.setBorderBottom( BorderStyle.MEDIUM_DASHED, region, sheet1, wb );
RegionUtil.setBorderTop(    BorderStyle.MEDIUM_DASHED, region, sheet1, wb );
RegionUtil.setBorderLeft(   BorderStyle.MEDIUM_DASHED, region, sheet1, wb );
RegionUtil.setBorderRight(  BorderStyle.MEDIUM_DASHED, region, sheet1, wb );
RegionUtil.setBottomBorderColor(IndexedColors.AQUA.getIndex(), region, sheet1, wb);
RegionUtil.setTopBorderColor(   IndexedColors.AQUA.getIndex(), region, sheet1, wb);
RegionUtil.setLeftBorderColor(  IndexedColors.AQUA.getIndex(), region, sheet1, wb);
RegionUtil.setRightBorderColor( IndexedColors.AQUA.getIndex(), region, sheet1, wb);// Shows some usages of HSSFCellUtil
CellStyle style = wb.createCellStyle();
style.setIndention((short)4);CellUtil.createCell(row, 8, "This is the value of the cell", style);Cell cell2 = CellUtil.createCell( row2, 8, "This is the value of the cell");CellUtil.setAlignment(cell2, HorizontalAlignment.CENTER);// Write out the workbook
try (OutputStream fileOut = new FileOutputStream( "workbook.xls" )) {wb.write( fileOut );
}
wb.close();

21、在工作表上向上或向下移动行

Workbook wb = new XSSFWorkbook();
Sheet sheet = wb.createSheet("row sheet");// Create various cells and rows for spreadsheet.
// Shift rows 6 - 11 on the spreadsheet to the top (rows 0 - 5)sheet.shiftRows(5, 10, -5);

22、将图纸设置为已选中

Workbook wb = new XSSFWorkbook();
Sheet sheet = wb.createSheet("row sheet");sheet.setSelected(true);

23、设置缩放放大倍数

Workbook wb = new HSSFWorkbook();
Sheet sheet1 = wb.createSheet("new sheet");sheet1.setZoom(75);   // 75 percent magnification

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

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

相关文章

LABVIEW Modbus 串口

VISA写入: 写入缓冲区改为“十六进制显示”,并输入数据。 数据缓冲区显示:使用“十六进制”显示。

第四节:jsp内的request和response对象

Jsp内置对象 Requset,当客户端请求一个jsp页面的时候,jsp页面所在的服务器端将客户端发出的所有请求信息封装在内置对象request中,因此用该对象可以获得客户端提交的信息 方法: Void setAttribute(String key,Object obj)设置属性的属性值…

Verilog使用liberty文件中cell单元的demo

Liberty(.lib)文件是用来描述标准单元库中逻辑单元(如门电路、触发器等)的时序和功耗特性的,不是用来直接定义Verilog中的元件。在Verilog设计中,我们通常通过实例化模块(module)来创…

【软考速通笔记】系统架构设计师⑧——系统质量属性与架构评估

文章目录 一、前言二、软件系统质量属性2.1 开发期质量属性2.2 运行期质量属性 三、质量属性场景描述四、系统架构评估方法4.1 方法分类4.2 软件架构分析方法4.3 架构权衡分析法4.4 成本效益分析法 一、前言 笔记目录大纲请查阅:【软考速通笔记】系统架构设计师——…

如何寻找适合的HTTP代理IP资源?

一、怎么找代理IP资源? 在选择代理IP资源的时候,很多小伙伴往往将可用率作为首要的参考指标。事实上,市面上的住宅IP或拨号VPS代理IP资源,其可用率普遍在95%以上,因此IP可用率并不是唯一的评判标准 其实更应该关注的…

FCBP 认证考试要点摘要

理论知识 数据处理与分析:包括数据的收集、清洗、转换、存储等基础操作,以及数据分析方法,如描述性统计分析、相关性分析、数据挖掘算法等的理解和应用 。数据可视化:涉及图表类型的选择与应用,如柱状图、折线图、饼图…

初识C++:指针与引用的异同,inline关键字

大家好,我是小卡皮巴拉 文章目录 目录 一.指针和引用的关系 1.1 概念 1.2 相似点 1.3 不同点 二.inline关键字 2.1 概念 2.2 工作原理 2.3 使用场景 2.4 注意事项 三.nullptr 3.1 引入背景 3.2 语义和类型 3.3 使用场景 兄弟们共勉 !&…

【软考速通笔记】系统架构设计师⑤——软件工程基础知识

文章目录 一、前言二、基础知识点2.1 软件危机2.2 软件生命周期 三、软件过程模型(论文)3.1 瀑布模型3.2 原型模型3.3 螺旋模型3.4 敏捷模型3.5 软件统一过程模型3.6 软件成熟度模型3.7 软件成熟度模型集成 四、需求工程五、软件测试5.1 根据程序执行状态…

DICOM医学影像应用篇——伪彩色映射 在DICOM医学影像中的应用详解

目录 引言 伪彩色映射的概念 基本原理 查找表(Look-Up Table, LUT) 步骤 示例映射方案 实现伪彩色映射的C代码 代码详解 伪彩色处理效果展示 总结 扩展知识 LUT 的基本概念 LUT 在伪彩色映射中的应用 示例 引言 在医学影像处理中&#xff0c…

韦东山stm32hal库--定时器喂狗模型按键消抖原理+实操详细步骤

一.定时器按键消抖的原理: 按键消抖的原因: 当我们按下按键的后, 端口从高电平变成低电平, 理想的情况是, 按下, 只发生一次中断, 中断程序只记录一个数据. 但是我们使用的是金属弹片, 实际的情况就是如上图所示, 可能会发生多次中断,难道我们要记录3/4次数据吗? 答:按键按下…

8、运算符

1、运算符相关概念 运算符: 具有一定运算规则的符号 运算符分类: 按照功能分: 赋值运算符 算术运算符 关系运算符 逻辑运算符 其他运算符 位运算符 按照操作数分: 单目运算符 双目运算符 三目运算符 表达式 具有一定意义的式子&…

【Linux网络编程】第二弹---Socket编程入门指南:从IP、端口号到传输层协议及编程接口全解析

✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】【Linux网络编程】 目录 1、Socket 编程预备 1.1、理解源 IP 和目的 IP 1.2、认识端口号 1.2.1、端口号范围划分 1.2.2、理解 &q…

算法训练营day08(字符串01:反转字符串,反转字符串2,替换数字,反转字符串里的单词,右旋转字符串)

第四章 字符串part01今日任务 ● 344.反转字符串 ● 541. 反转字符串II ● 卡码网:54.替换数字 ● 151.翻转字符串里的单词 ● 卡码网:55.右旋转字符串详细布置 344.反转字符串 建议: 本题是字符串基础题目,就是考察 reverse 函数…

Java中三种常用布局方式

引言 在Java Swing和JavaFX中,布局管理器(Layout Managers)用于控制组件(如按钮、文本框等)在容器(如窗口、面板等)内的位置和大小。下面介绍Java Swing中常用的三种布局方式: 1. Fl…

如何借助AI生成PPT,让创作轻松又高效

PPT是现代职场中不可或缺的表达工具,但同时也可能是令人抓狂的时间杀手。几页幻灯片的制作,常常需要花费数小时调整字体、配色与排版。AI的飞速发展为我们带来了革新——AI生成PPT的技术不仅让制作流程大大简化,还重新定义了效率与创意的关系…

Leetcode(快慢指针习题思路总结,持续更新。。。)

这种模式,有一个非常出门的名字,叫龟兔赛跑。这种算法的两个指针的在数组上(或是链表上,序列上)的移动速度不一样。快的一个指针肯定会追上慢的一个(可以想象成跑道上面跑得快的人套圈跑得慢的人&#xff0…

基于时间维度优化“开源 AI 智能名片 S2B2C 商城小程序”运营策略:提升触达与转化效能

摘要: 随着数字化商业生态的蓬勃发展,“开源 AI 智能名片 S2B2C 商城小程序”融合前沿技术与创新商业模式,为企业营销与业务拓展带来新机遇。本文聚焦于用户时间场景维度,深入剖析如何依据不同时段用户行为特征,精准适…

【消息序列】详解(8):探秘物联网中设备广播服务

目录 一、概述 1.1. 定义与特点 1.2. 工作原理 1.3. 应用场景 1.4. 技术优势 二、截断寻呼(Truncated Page)流程 2.1. 截断寻呼的流程 2.2. 示例代码 2.3. 注意事项 三、无连接外围广播过程 3.1. 设备 A 启动无连接外围设备广播 3.2. 示例代…

二刷代码随想录第15天

513. 找树左下角的值 找到深度最大的点,遍历方式左边节点在右边节点前面,找到就返回,一定就是最左下角的值了 class Solution { public:int max_depth -1;int result 0;int findBottomLeftValue(TreeNode* root) {traversal(root, 0);ret…

vue3的prop

- 父组件需要传多个值给子组件 把值放对象&#xff0c;通过v-bind传整个对象 父组件 <script setup> import BlogPost from ./BlogPost.vue import { reactive } from vue; // 要传给子组件的所有值&#xff0c;用reactive包了该对象后&#xff0c;父组件的值变了&#…