本文使用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并设置格式(字体、背景色、自动列宽、对齐方式等)的更多相关文章

  1. Java使用POI读取和写入Excel指南

    Java使用POI读取和写入Excel指南 做项目时经常有通过程序读取Excel数据,或是创建新的Excel并写入数据的需求: 网上很多经验教程里使用的POI版本都比较老了,一些API在新版里已经废弃 ...

  2. poi生成excel整理(设置边框/字体/颜色/加粗/居中/)

    转: poi生成excel整理(设置边框/字体/颜色/加粗/居中/) 2016年12月02日 11:05:23 吃奶的牛 阅读数:34324   HSSFWorkbook wb = new HSSFW ...

  3. Java使用POI读取和写入Excel指南(转)

    做项目时经常有通过程序读取Excel数据,或是创建新的Excel并写入数据的需求: 网上很多经验教程里使用的POI版本都比较老了,一些API在新版里已经废弃,这里基于最新的Apache POI 4.0 ...

  4. JAVA导出excel如何设置表头跨行或者跨列,跪求各位大神了

    sheet.addMergedRegion(new CellRangeAddress(0, 0, 0, 0));// 开始行,结束行,开始列,结束列.只能是POI了吧?java还有其他方法吗?

  5. java使用poi.3.10读取excel 2003 (xls格式)

    最近在做一个Excel导入数据库的案例,整理文档出来供大家参考. 1.下载 最新的 poi http://poi.apache.org/download.html    2.解压 把相关jar包引进项 ...

  6. poi excel 设置边框字体行高行宽

     final HSSFSheet sheet = wb.createSheet(sheetName + "_" + n);   System.out.println("s ...

  7. SAP ABAP: 把内表数据以excel或csv格式,通过前台或者后台的方式上传至FTP服务器

    今天接到一个FTP的需求,就是每天晚上把当天某个报表的数据自动保存excel上传到FTP服务器. SAP已经有现成的FTP函数使用,可以通过函数的方式来实现,实现前先准备一些数据: User:登录FT ...

  8. python从数据库取数据后写入excel 使用pandas.ExcelWriter设置单元格格式

    用python从数据库中取到数据后,写入excel中做成自动报表,ExcelWrite默认的格式一般来说都比较丑,但workbook提供可以设置自定义格式,简单记录个demo,供初次使用者参考. 一. ...

  9. python模块:xlsxwriter和xlrd相结合读取、写入excel文件

    python模块简单说明: xlsxwriter:负责写入数据 xlrd:负责读取数据 xlsxwriter 官方文档:http://xlsxwriter.readthedocs.org 本实例是刚写 ...

随机推荐

  1. BZOJ_1212_[HNOI2004]L语言_哈希

    BZOJ_1212_[HNOI2004]L语言_哈希 Description 标点符号的出现晚于文字的出现,所以以前的语言都是没有标点的.现在你要处理的就是一段没有标点的文章. 一段文章T是由若干小写 ...

  2. xamarin android网络请求总结

    xamarin android中网络请求的框架非常多,在项目中使用的是第三方的一个网络请求框架restsharp,应该是github上.net网络请求最多star的框架,没有之一.这里就简单汇总了其他 ...

  3. 线上应用调试利器 --Arthas

    在之前的文章中,我介绍了使用 Btrace 工具进行线上代码的debug (https://www.cnblogs.com/yougewe/p/10180483.html),其大致原理就是通过字节码注 ...

  4. C# winform 检测当前电脑安装的.net framework版本

    private static bool GetDotNetRelease(int release) { const string subkey = @"SOFTWARE\Microsoft\ ...

  5. ASP.NET Core - 利用Windsor Castle实现通用注册

    问题引入 在ASP.NET Core - 依赖注入这篇文章里面,我们知道了如何利用ASP.NET Core原生的容器来实现依赖注入的,那我们为什么要替换掉默认的 IoC容器呢?从ASP.NET Cor ...

  6. 如何使用vs将asp.net core项目添加容器支持并发布docker镜像到私有dockerhub和添加k8s/helm管理

    这篇文章介绍一下,如何使用VS2017给asp.net core添加容器支持,并发布镜像到私有docker hub,然后用chart管理容器镜像的操作流程. 话不多说,just do it. 新建项目 ...

  7. 如何在ASP.NET Core中自定义Azure Storage File Provider

    文章标题:如何在ASP.NET Core中自定义Azure Storage File Provider 作者:Lamond Lu 地址:https://www.cnblogs.com/lwqlun/p ...

  8. C# 错误:空对象不能转换为值类型

    最近在做项目的时候出现了一个错误 当从数据库中获取值的时候 报错:空对象不能转换为值类型 因为数据库你查询数据的时候不是所有的字段都是存在数据的,有些字段可能是Null值,也就是没有数据 当你在类型转 ...

  9. 搜狗输入法与VS快捷键有冲突_处理办法

    前言:搜狗输入法是大家常用的文字输入工具,但是在开启输入法的时候,VS的一些快捷键无法正常使用,如智能提示快捷键:Ctrl+.,这就非常尴尬了,除非把输入法切换成英文或者卸载搜狗改别的输入法,一个是切 ...

  10. String字符串类总结

    object类 int hashCode() Object定义的hashCode方法能为不同对象返回不同的整数.实际上是把JVM给对象分配的地址转化为整数,确保了逻辑上的唯一性.而转化的散列算法,可能 ...