Java使用jxl包写Excel文件适合列宽实现
本文导语: 注意,这个只是基本可以实现,基本针对中文电子报表。 1.实现思路(1)一般的中文汉字占位长度是英文字母的2倍,“方块字”很统一。(2)对于要写入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