Java将数据按列写入Excel并设置格式(字体、背景色、自动列宽、对齐方式等)
本文使用jxl.jar工具类库将数据按列写入Excel并设置格式(字体、背景色、自动列宽、对齐方式等)。
/**
* 按列写入Excel并设置格式
*
* @param outputUrl
* 输出路径
* @param sheetName
* 工作薄名称
* @param titles
* 表头
* @param arrayList
* 表头数据
* @throws IOException
* @throws RowsExceededException
* @throws WriteException
*/
public static void writeExcel(String outputUrl, String sheetName, String[] titlesArray,
ArrayList<String>... arrayList) throws IOException, RowsExceededException, WriteException {
if (outputUrl == null || outputUrl.length() == 0) {
System.out.println(
"Param(s) Error:outputUrl is required and the length of outputUrl is required greater than 0.");
return;
}
int n = arrayList.length;
if (titlesArray.length != n) {
System.out.println("Param(s) Error:the titles' length is hoped to be equal to arrayList's length.");
return;
}
//创建Excel文件
File file = new File(outputUrl);
file.createNewFile();
//创建工作簿
WritableWorkbook workbook = Workbook.createWorkbook(file);
//创建sheet,设置名称为sheetName,默认Sheet1
if (sheetName == null || sheetName.length() == 0) {
sheetName = "Sheet1";
}
WritableSheet sheet = workbook.createSheet(sheetName, 0);
//设置titles
String[] titles = titlesArray;
//设置表头:列名和各种格式
for (int i = 0; i < titles.length; i++) {
WritableFont font = new WritableFont(WritableFont.ARIAL, 10, WritableFont.BOLD);
CellView cellView = new CellView();
cellView.setAutosize(true); //设置自动大小
sheet.setColumnView(i, cellView); //根据内容自动设置列宽
WritableCellFormat format = new WritableCellFormat(font);
format.setAlignment(Alignment.CENTRE); //居中对齐
format.setBackground(Colour.YELLOW); //背景色
format.setBorder(Border.ALL, BorderLineStyle.THICK, Colour.BLACK);//边框
Label label = new Label(i, 0, titles[i], format);
sheet.addCell(label);
}
//写入数据,并设置一些格式
for (int i = 0; i < n; i++) {
for (int j = 0; j < arrayList[i].size(); j++) {
//WritableFont.createFont("宋体"):设置字体为宋体
//10:设置字体大小
//WritableFont.BOLD:设置字体加粗(BOLD:加粗 NO_BOLD:不加粗)
//false:设置非斜体
//UnderlineStyle.NO_UNDERLINE:没有下划线
WritableFont font = new WritableFont(WritableFont.createFont("宋体"), 10, WritableFont.NO_BOLD);
WritableCellFormat format = new WritableCellFormat(font);
Label label = new Label(i, j + 1, arrayList[i].get(j), format);
sheet.addCell(label);
}
}
//写入数据
workbook.write();
//关闭工作簿
workbook.close();
}
测试代码:
public static void main(String[] args) throws Exception {
String txtUrl = "C:\\Users\\Administrator\\Desktop\\匹配.txt";
ArrayList<String> list1 = ExcelReadUtil.readBookName(txtUrl);
ArrayList<String> list2 = ExcelReadUtil.readFilePath(txtUrl);
String[] titles = { "书名", "路径" };
writeExcel("C:\\Users\\Administrator\\Desktop\\匹配.xls", "匹配", titles, list1, list2);
}
测试结果;

Java将数据按列写入Excel并设置格式(字体、背景色、自动列宽、对齐方式等)的更多相关文章
- Java使用POI读取和写入Excel指南
Java使用POI读取和写入Excel指南 做项目时经常有通过程序读取Excel数据,或是创建新的Excel并写入数据的需求: 网上很多经验教程里使用的POI版本都比较老了,一些API在新版里已经废弃 ...
- poi生成excel整理(设置边框/字体/颜色/加粗/居中/)
转: poi生成excel整理(设置边框/字体/颜色/加粗/居中/) 2016年12月02日 11:05:23 吃奶的牛 阅读数:34324 HSSFWorkbook wb = new HSSFW ...
- Java使用POI读取和写入Excel指南(转)
做项目时经常有通过程序读取Excel数据,或是创建新的Excel并写入数据的需求: 网上很多经验教程里使用的POI版本都比较老了,一些API在新版里已经废弃,这里基于最新的Apache POI 4.0 ...
- JAVA导出excel如何设置表头跨行或者跨列,跪求各位大神了
sheet.addMergedRegion(new CellRangeAddress(0, 0, 0, 0));// 开始行,结束行,开始列,结束列.只能是POI了吧?java还有其他方法吗?
- java使用poi.3.10读取excel 2003 (xls格式)
最近在做一个Excel导入数据库的案例,整理文档出来供大家参考. 1.下载 最新的 poi http://poi.apache.org/download.html 2.解压 把相关jar包引进项 ...
- poi excel 设置边框字体行高行宽
final HSSFSheet sheet = wb.createSheet(sheetName + "_" + n); System.out.println("s ...
- SAP ABAP: 把内表数据以excel或csv格式,通过前台或者后台的方式上传至FTP服务器
今天接到一个FTP的需求,就是每天晚上把当天某个报表的数据自动保存excel上传到FTP服务器. SAP已经有现成的FTP函数使用,可以通过函数的方式来实现,实现前先准备一些数据: User:登录FT ...
- python从数据库取数据后写入excel 使用pandas.ExcelWriter设置单元格格式
用python从数据库中取到数据后,写入excel中做成自动报表,ExcelWrite默认的格式一般来说都比较丑,但workbook提供可以设置自定义格式,简单记录个demo,供初次使用者参考. 一. ...
- python模块:xlsxwriter和xlrd相结合读取、写入excel文件
python模块简单说明: xlsxwriter:负责写入数据 xlrd:负责读取数据 xlsxwriter 官方文档:http://xlsxwriter.readthedocs.org 本实例是刚写 ...
随机推荐
- xshell 快速复制打开之前用过的ssh
有时候需要对一个ip地址的服务器进行多个操作,不在一个会话中,需要新建多个同样的会话 然后左键单击+号 出现一个新的会话 然后再右键单击+号 选择之前保存过的ip地址即可快速创建!
- ionic3 懒加载在微信上缓存的问题
1.懒加载是什么? 在ionic2中所有的组件.模块.服务.管道等都堆积在app.module.ts模块中,在页面初始化的时候会一次性加载所有的资源,导致资源过大,页面渲染缓慢,也导致app.modu ...
- Centos 7 Linux系统修改网卡名称为ethx
一.Centos7 系统安装完成后更改网卡名称方法 1.查看Centos7系统默认的网卡配置(eno16777736) [root@server ~]# ifconfig eno16777736: f ...
- 事务是什么?事务的4个特点(ACID),事务的开启与结束
事务是指作为单个逻辑工作单元执行的一组相关操作.这些操作要求全部完成 或者全部不完成.使用事务是为了保证数据的安全有效. 事务有一下四个特点:(ACID) 1.原子性(Atomic):事务中所有数据的 ...
- ASP.NET Core Web API 索引 (更新Identity Server 4 视频教程)
GraphQL 使用ASP.NET Core开发GraphQL服务器 -- 预备知识(上) 使用ASP.NET Core开发GraphQL服务器 -- 预备知识(下) [视频] 使用ASP.NET C ...
- Arthas
Arthas 是Alibaba开源的Java诊断工具,深受开发者喜爱 下载&启动 wget https://alibaba.github.io/arthas/arthas-boot.jar 启 ...
- 初探奥尔良(Orleans)
由于工作上关系目前经常被各种并发数据问题搞得焦头烂额,要么要性能舍弃数据上得一致性,要么要一致性但是却得到了特别糟糕的响应.难道鱼和熊掌真的无法兼得吗? 然后找到了类似奥尔良这种基于Actor模型的k ...
- 学习 javascript (一)javascript 简介
javascript 从一个简单的输入验证器发展成为一门强大的编程语言. 历史 以前我们输入一个表单,点击完提交后,服务器发送反馈给我们.比如填写姓名的时候,我们在前端不能限定人们只能输入汉字,需要服 ...
- 8天入门docker系列 —— 第二天 通过一个aspnetcore程序加深对容器的理解
我们知道容器是一个打包了应用和相关依赖的盒子,那怎么去操控这个盒子呢? 这一篇我通过一个简单的aspnetcore程序来加深对盒子的理解,使用之前先 安装一下Docker的环境. 一:Docker的安 ...
- Unity_新手必懂知识点
翻车了!!!一个小例子带你了解闭包.事故现场:场景:6个button,上方1个text.点击button,text会显示button上的数字.代码如下: //在unity里面赋值public List ...