Java将数据按列写入Excel并设置格式(字体、背景色、自动列宽、对齐方式等)
发布日期:2021-05-09 06:23:07
浏览次数:16
分类:博客文章
本文共 3297 字,大约阅读时间需要 10 分钟。
本文使用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... 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"; ArrayListlist1 = ExcelReadUtil.readBookName(txtUrl); ArrayList list2 = ExcelReadUtil.readFilePath(txtUrl); String[] titles = { "书名", "路径" }; writeExcel("C:\\Users\\Administrator\\Desktop\\匹配.xls", "匹配", titles, list1, list2); }
测试结果;
转载地址:https://www.cnblogs.com/sgh1023/p/10026817.html 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
感谢大佬
[***.8.128.20]2024年03月22日 11时09分45秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
大疆机甲大师教育机器人Python API中文化之三:底盘灯效
2019-04-26
大疆机甲大师教育机器人Python API中文化之四五:云台灯效,指定序号
2019-04-26
大疆机甲大师教育机器人Python API中文化之六:关灯
2019-04-26
“中文编程”知乎专栏两岁了——山雨欲来风满楼
2019-04-26
大疆机甲大师Python API之七:做个闹钟
2019-04-26
【意外走向】大疆机甲大师Python API之八:计时——为性能测试展开1000次循环
2019-04-26
”为什么有这么多人执着于中文编程?”回答两千赞留念及回应
2019-04-26
【家务】盘点小孩玩具零件缺失情况
2019-04-26
开发中文 API 的一些策略
2019-04-26
从日本编程书籍《我的第一本编程书》中译版看中文例程如何扬长避短——标识符(一)
2019-04-26
中文命名标识符如何区分类型和变量
2019-04-26
编程术语成系统中文化的意义
2019-04-26
草蟒 Python 中文 API 与 IDE 支持尝鲜
2019-04-26
一种改进中文 API 可读性的方法:参数不限于在末尾
2019-04-26
中文编程开发工具的生存模式探讨
2019-04-26
写给木兰编程语言研发团队的公开信
2019-04-26
为什么要急着为「木兰」编程语言贴上“造假”的标签?
2019-04-26
编程语言国产化的关键一战——对肆意污名化“木兰”编程语言说“不”
2019-04-26