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();
}
}
}
|


浙公网安备 33010602011771号