Excel工具類
從網上大神找的代碼 封裝了一下 但是封裝的不好,大神可以繼續封裝 附錄有官方文檔 package com.su.testexcel; import java.io.File; import jxl.Cell; import jxl.Sheet; import jxl.Workbook; import jxl.write.Label; import jxl.write.WritableImage; import jxl.write.WritableSheet; import jxl.write.WritableWorkbook; import android.util.Log; public class ExcelUtil { /** * 读取xml * * @param uri * xml文件路径 */ static public void readExcel(String uri) { try { Workbook book = Workbook.getWorkbook(new File(uri)); Log.i("test", book.getNumberOfSheets() + "");// 获取工作表的数量 Sheet sheet = book.getSheet(0);// 第一个工作表 int Rows = sheet.getRows();// 行数 int Cols = sheet.getColumns();// 列数 for (int i = 0; i < Cols; ++i) { for (int j = 0; j < Rows; ++j) { // getCell(Col,Row)获得单元格的值 System.out .print((sheet.getCell(i, j)).getContents() + "\t"); } System.out.print("\n"); } // 得到第一列第一行的单元格 Cell cell1 = sheet.getCell(0, 0); String result = cell1.getContents(); System.out.println(result); book.close(); } catch (Exception e) { System.out.println(e); } } /** * 創建並寫入表格信息 * * @param uri */ static public void createExcel(String uri) { try { WritableWorkbook book = Workbook.createWorkbook(new File(uri)); // 生成名为“第一页”的工作表,参数0表示这是第一页 WritableSheet sheet1 = book.createSheet("第一页", 0); // 同理 WritableSheet sheet2 = book.createSheet("第三页", 2); // 在Label对象的构造函数中,元格位置是第一列第一行(0,0)以及单元格内容为test Label label = new Label(0, 0, "第一行第一列"); Label label1 = new Label(3, 1, "第二行第四列"); // 将定义好的单元格添加到工作表中 sheet1.addCell(label); sheet1.addCell(label1); /* * 生成一个保存数字的单元格.必须使用Number的完整包路径,否则有语法歧义 保存在第二列第一行 */ jxl.write.Number number = new jxl.write.Number(1, 0, 555.12541); sheet2.addCell(number); /* * 添加图片功能,注意是png的 */ sheet1.addImage(new WritableImage(5, 5, 2, 5, new File( "mnt/sdcard/nb.png"))); // 写入数据并关闭文件 book.write(); book.close(); } catch (Exception e) { System.out.println(e); } } /** * 首先图片read原文件 然后覆盖原文件写入 * * @param */ static public void updateExcel(String uri) { try { Workbook rwb = Workbook.getWorkbook(new File(uri)); WritableWorkbook wwb = Workbook.createWorkbook(new File(uri), rwb);// 创建一个新的xls WritableSheet ws = wwb.getSheet(0); // 在Label对象的构造函数中,元格位置是第一列第一行(0,0)以及单元格内容为test Label label = new Label(0, 0, "第一行第一列"); Label label1 = new Label(3, 1, "第二行第四列"); // 将定义好的单元格添加到工作表中 ws.addCell(label); ws.addCell(label1); jxl.write.Number number = new jxl.write.Number(1, 5, 15.56); ws.addCell(number); wwb.write(); wwb.close(); rwb.close(); } catch (Exception e) { e.printStackTrace(); } } }
|