新手,用jxl写了一个读取excel内容的小程序,现在有一个疑问。

比如一共有1000行,我怎么分县区统计,各县区分别有多少行?

第1个回答  2017-04-01
现在来看看如何读取Excel模板然后把动态数据写入到模板以生成特定格式的Excel。 同样的思路,先来考虑下会涉及到那些对象,和上篇文章读取相比这里涉及到一个写入的步骤,所以JXL必然会提供一个对象 来支持写入,这就是WritableWorkbook。那么如何得到到这个类的实例,查看APIDoc发现Workbook类提供了几个 静态的createWorkbook方法返回WritableWorkbook实例,可以看到众多createWorkbook方法主要分为两类:一个参数 和两个参数。简单分析可以得知前者仅仅是用来直接生成Excel文件,后者先读取模板再向模板写入数据然后生成Excel。 (还有一个三参数方法加上一个用来设置workbook的参数) 现在按照上篇文章中所讲述的流程来看看读取模板并写入需要那些步骤。 第一步:选择模板文件: Workbook wb = Workbook.getWorkbook(new File(realpath)); 第二步:通过模板得到一个可写的Workbook: WritableWorkbook wwb = Workbook.createWorkbook(targetFile, wb); 第一个参数是一个输出流对象,比如可以 ByteArrayOutputStream targetFile = new ByteArrayOutputStream(); 这样定义这个输出流对象。第二个参数代表了要读取的模板。 第三步:选择模板中名称为StateResult的Sheet: WritableSheet wws = wwb.getSheet("StateResult"); 如果需要也可以创建Sheet WritableSheet wws = wwb.createSheet("Sheet名称",i); 第四步:选择单元格,写入动态值,根据单元格的不同类型转换成相应类型的单元格: Label A1 = (Label)wws.getWritableCell(0,0); A1.setString("单元格内容") 或 Number A2 = (Number)wws.getWritableCell(0,1);//Number是jxl.write.Number A2.setValue(3.3); 也可以创建新的单元格并且加入到Sheet中 Label C1 = new Label(2,0,"单元格内容"); wws.addCell(C1); 或 Number C1 = new Number(2,0,3.3); wws.addCell(C1); 在生成Excel报表的时候还会遇到一种需求就是数据的格式问题,我们可能希望数值型单元格以某种格式显示,而字符串型单元格以另 一种格式显示。这些可以通过WritableFont、NumberFormat、WritableCellFormat等实现,下例给单元格A1、A2添加了不同的格式。 java 代码
相似回答