lige239141 发表于 2013-1-28 18:48:08

JXL解析Excel

本文章分两部分部分。
 
第一部分:有关JXL的链接
Jxl写Excel的使用总结
Jxl的类总结
利用JXL操作EXCEL文件
 
第二部分:自己写的JXL读取和写Excel的Demo代码
 
读取Excel表格:
 
//读Excel表格--工作薄,工作表,行,单元格public static StringreadExcel(String filePath){File file=new File(filePath);Workbook wb=null;StringBuffer sb = new StringBuffer();try {//传入的是文件,获取工作薄wb=Workbook.getWorkbook(file);if(wb!=null){//获取所有的工作表Sheet[] sheets = wb.getSheets(); if(sheets!=null&&sheets.length!=0){for(int i=0;i<sheets.length;i++){//获取每一个工作表,此后的操作都在工作表上面进行Sheet sheet=wb.getSheet(i);//println(sheet.getRowView(0).getSize());////这个Columns与row是一样的//println(sheet.getColumns());////精确定位,注意:第一个参数是列,第二个才是行//println(sheet.getCell(3, 1).getContents());//获取行的长度int rows_len=sheet.getRows();for(int j=0;j<rows_len;j++){//获取所有的列Cell[] cells=sheet.getRow(j);if(cells!=null&&cells.length!=0){for(int k=0;k<cells.length;k++){//获取每一列Cell cell=cells;////单元格的样式//println(cell.getCellFormat().getFont().getColour().getDescription());////单元格类型//println(cell.getType());//每一列空一个制表符sb.append(cell.getContents() + "\t");}//每一列最后一列空一个制表符,且换行sb.append("\t\n");}}//最后一列换行sb.append("\t\n");}}}} catch (BiffException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}finally {            wb.close();          }return sb.toString();} 
写Excel表格:
 
//写Excel表格public static void writeExcel(String fileName){String[] title={"姓名","英文姓名","职位","手机","年龄","工资"};try {OutputStream os=new FileOutputStream(fileName);//创建工作薄,一个参数WritableWorkbookwb=Workbook.createWorkbook(os);//创建工作表WritableSheet sheet=wb.createSheet("员工基本信息", 0);Label label;//填充表头for(int i=0;i<title.length;i++){// Label(x,y,z)其中x代表单元格的第x+1列,y代表单元格的第y+1行, 单元格的内容是zlabel=new Label(i,0,title);sheet.addCell(label);}    //填充数据sheet.addCell(new Label(0,1,"离歌"));sheet.addCell(new Label(1,1,"bruce"));sheet.addCell(new Label(2,1,"web programmer"));sheet.addCell(new Label(3,1,"123456789"));jxl.write.Number number = new jxl.write.Number(4,1,25);sheet.addCell(number);//jxl会自动实现四舍五入 jxl.write.NumberFormat format=new jxl.write.NumberFormat("#.##");jxl.write.WritableCellFormat wcf=new jxl.write.WritableCellFormat(format);jxl.write.Number nb = new jxl.write.Number(5,1,3200.000,wcf);sheet.addCell(nb);//定义字体等样式CellFormat cf=wb.getSheet(0).getCell(1, 0).getCellFormat();WritableCellFormat wcf2=new WritableCellFormat(cf);wcf2.setAlignment(Alignment.CENTRE);wcf2.setBorder(Border.TOP,BorderLineStyle.THIN);wcf2.setBackground(Colour.RED);WritableFontfont=new WritableFont(WritableFont.createFont("隶书"),15);    WritableCellFormat wfont = new WritableCellFormat(font);   //这种方式是填充数据后设置的样式for(int j=0;j<title.length;j++){String content=sheet.getCell(j, 1).getContents();sheet.addCell(new Label(j,1,content,wfont));//sheet.addCell(new Label(j,1,content,wcf2));}      //进行写操作wb.write();wb.close();} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();} catch (RowsExceededException e) {e.printStackTrace();} catch (WriteException e) {e.printStackTrace();}} 主方法:
 
publicstatic void main(String args[]){                //读取的excel表格文件String str=readExcel("config/TCC.xls");                //输出的excel表格文件                String str2="config/TCC.xls";                System.out.println(str);writeExcel(str2);}
页: [1]
查看完整版本: JXL解析Excel