java jxl 写 excel文件_Java使用jxl包写Excel文件适合列宽实现

本文介绍了一种方法,针对中文电子报表自动计算最佳列宽。通过统计汉字和英文字符的宽度,确保汉字的方块特性得到充分利用,从而实现Excel列宽的最优化。该方法适用于包含大量汉字的数据,可以有效地处理汉字和英文字符混合的情况。

注意,这个只是基本可以实现,基本针对中文电子报表。

1.实现思路

(1)一般的中文汉字占位长度是英文字母的2倍,“方块字”很统一。

(2)对于要写入Excel中的数据统计每一列的最大列宽,最后直接将这一列的列宽设置为这个列的最大值即可。

2.实现代码

import java.io.File;

import java.util.ArrayList;

import java.util.List;

import java.util.regex.Matcher;

import java.util.regex.Pattern;

import jxl.Workbook;import jxl.write.Label;import jxl.write.WritableSheet;import jxl.write.WritableWorkbook;

//中文名public class ExcelBestColumn{    public static void main(String argus[]) throws Exception{        //构造数据,有两行         List row1=new ArrayList();    row1.add("最合适列宽");    row1.add("这个基本可以实现");        List row2=new ArrayList();    row2.add("Best Column Width");    row2.add("Haha");        List list=new ArrayList();    list.add(row1);    list.add(row2);        //写数据到Excel中        WritableWorkbook book= Workbook.createWorkbook(new File("t.xls"));         WritableSheet sheet=book.createSheet("测试",0);         writeDataToSheet(sheet,list);        book.write();         book.close();     }    public static void writeDataToSheet(WritableSheet sheet,List> list) throws Exception{        int columnBestWidth[]=new  int[list.get(0).size()];    //保存最佳列宽数据的数组        for(int i=0;i row=list.get(i);            for(int j=0;j

3.只是实现而已

(1)这个是一次项目中写的,自动导数Excel电子报表,可以很好实现。主要是:汉字,阿拉伯数字。

(2)汉字是方块字,每个字的大小很统一,可以很惊奇的统计列宽。

(3)英文小写字母共26个,每个字母的大小差异很小,也可以实现最佳列宽。

(4)其他字符,每个字符的占位大小差异不定,比如大小字母序列“IIIIIII”和字母“DDDDDDD”。

总之,jxl.jar没有自动实现最适合列宽的方法;如果要导出的电子报表中汉字占绝大多数,就能很好的用这个程序实现最适合列宽。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值