Java中导入、导出Excel( 四 )


3.3高级操作3.3.1数据格式化
在Excel中不涉及复杂的数据类型,能够比较好的处理字串、数字和日期已经能够满足一般的应用即可 。
数据的格式化涉及到的是字体、粗细、字号等元素,这些功能主要由 和类来负责 。例如:
①font=new (.("宋体"),12,. );
②=new (font);
③ Label label=new Label(0,0,”data 4 test”,);
其中
I.指定了字串格式:字体为宋体,字号16,加粗显示 。有非常丰富的构造子,供不同情况下使用,的java-doc中有详细列表,这里不再列出 。
II. 处代码使用了类,这个类非常重要,通过它可以指定单元格的各种属性,如上例代码所示 。
III. 处使用了Label类的构造子,指定了显示的位置,文本内容,字串被赋予的格式 。
与Label类似的、,区别Label表示文本数据;表示数值数据,可使格式化数据;用表示日期型数据,可应用格式化数据 。
3.3.2单元格操作
Excel中很重要的一部分是对单元格的操作,比如行高、列宽、单元格合并等,所幸提供了这些支持 。这些操作相对比较简单,下面只介绍一下相关的API 。
1、 合并单元格
WritableSheet.mergeCells(int m,int n,int p,int q);//作用是从(m,n)到(p,q)的单元格全部合并,比如:WritableSheet sheet=book.createSheet(“第一页”,0);//合并第一列第一行到第六列第一行的所有单元格sheet.mergeCells(0,0,5,0);//合并既可以是横向的,也可以是纵向的 。合并后的单元格不能再次进行合并,否则会触发异常 。
2、 行高和列宽
writableSheet.setRowView(int i,int height);//作用是指定第i+1行的高度,比如:// 将第一行的高度设为200sheet.setRowView(0,200);WritableSheet.setColumnView(int i,int width);//作用是指定第i+1列的宽度,比如://将第一列的宽度设为30sheet.setColumnView(0,30);
3.4 从Excel文件读取数据表
我们就以导入3.2所产生的excel表为例,掌握如何编写导入Excel代码(该代码封装在业务层方法)
public List loadScoreInfo(String xlsPath) throws IOException, BiffException{//导入已存在的Excel文件,获得只读的工作薄对象FileInputStream fis=new FileInputStream(xlsPath);Workbook wk=Workbook.getWorkbook(fis);//获取第一张Sheet表 Sheet sheet=wk.getSheet(0);//获取总行数int rowNum=sheet.getRows();//从数据行开始迭代每一行for(int i=2;i
3.4 更新已存在的Excel文件
将3.2所产生的excel表(temp.xls)的第一条记录(excel文件的指第三行)的班级名称改为As179,代码如下:
File file=new File("d://temp.xls");//导入已存在的Excel文件,获得只读的工作薄对象Workbook wk=Workbook.getWorkbook(file);//根据只读的工作薄对象(wk)创建可写入的Excel工作薄对象 WritableWorkbook wwb=Workbook.createWorkbook(file, wk);//读取第一张工作表 WritableSheet sheet=wwb.getSheet(0);///获得要编辑的单元格对象 WritableCell cell=sheet.getWritableCell(1, 2);//判断单元格的类型, 做出相应的转化 if(cell.getType()==CellType.LABEL){Label lable=(Label)cell;//修改单元格的内容lable.setString("As179");}wwb.write(); wwb.close(); wk.close();