一個項目,其中實現(xiàn)了jxl 對于excl 的操作(單元格,圖片,折線圖,合并單元格)。使用poi 操作doc,excel和pdf實現(xiàn)相應(yīng)的功能。
Android poi 操作doc excel pdf部份源碼
Android Studio 依賴
compile 'net.sourceforge.jexcelapi:jxl:2.6.12'
本測試在Exlipse中, 由于Jxl的跨平臺性。
創(chuàng)建Excel表
/**
* 創(chuàng)建Excel
* Created by mazaiting on 2017/9/28.
*/
public class WriteExcel {
/**Sheet表, Excel表中的底部的表名*/
private WritableSheet mWritableSheet;
/**Excel工作簿*/
private WritableWorkbook mWritableWorkbook;
public static void main(String[] args) throws WriteException, IOException {
WriteExcel excel = new WriteExcel();
excel.create("test");
for (int i = 0; i < 10; i++) {
excel.addString(0, i, "text"+i);
excel.addString(1, i, "text"+i+"-1");
excel.addString(2, i, "text"+i+"-2");
}
excel.close();
}
/**
* 創(chuàng)建Sheet表
* @param fileName 文件名
* @return Sheet表
*/
public WritableSheet create(String fileName){
try {
// 輸出Excel的路徑
String filePath = "E:/"+fileName+".xls";
// 新建一個文件
OutputStream os = new FileOutputStream(filePath);
// 創(chuàng)建Excel工作簿
mWritableWorkbook = Workbook.createWorkbook(os);
// 創(chuàng)建Sheet表
mWritableSheet = mWritableWorkbook.createSheet("第一張工作表", 0);
return mWritableSheet;
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
/**
* 關(guān)閉工作簿
* @throws IOException
* @throws WriteException
*/
public void close() throws IOException, WriteException {
// 寫入數(shù)據(jù)
mWritableWorkbook.write();
// 關(guān)閉文件
mWritableWorkbook.close();
}
/**
* 添加字符串
* @param col 列號
* @param row 行號
* @param text 文本
* @throws WriteException
*/
public void addString(int col, int row, String text) throws WriteException {
if (null == mWritableSheet) return;
Label label = new Label(col, row, text);
mWritableSheet.addCell(label);
}
/**
* 添加數(shù)字
* @param col 列號
* @param row 行號
* @param num 數(shù)字
* @throws WriteException
*/
public void addInt(int col, int row, int num) throws WriteException {
if (null == mWritableSheet) return;
Number number = new Number(col, row, num);
mWritableSheet.addCell(number);
}
}
讀取Excel表
/**
* 讀取Excel
*/
public class ReadExcel {
public static void main(String[] args) {
// 字符列表
List<String> list = new ArrayList<String>();
// 文件路徑
String filePath = "E:/test.xls";
// 輸入流
InputStream is = null;
// Excel工作簿
Workbook workbook = null;
try {
// 加載Excel文件
is = new FileInputStream(filePath);
// 獲取workbook
workbook = Workbook.getWorkbook(is);
} catch (Exception e) {}
// 獲取sheet, 如果你的workbook里有多個sheet可以利用workbook.getSheets()方法來得到所有的
Sheet sheet = workbook.getSheet(0);// 這里只取得第一個sheet的值,默認從0開始
System.out.println(sheet.getColumns());// 查看sheet的列
System.out.println(sheet.getRows());// 查看sheet的行
Cell cell = null;// 單個單元格
// 開始循環(huán),取得cell里的內(nèi)容,按具體類型來取
// 這里只取String類型
for (int j = 0;j<sheet.getColumns();j++){
StringBuffer sb = new StringBuffer();
for (int i=0;i<sheet.getRows();i++){
// 列,行
cell = sheet.getCell(j, i);
sb.append(cell.getContents());// 獲取單元格內(nèi)容
sb.append(",");// 將單元格的每行內(nèi)容用逗號隔開
}
list.add(sb.toString());//將每行的字符串用一個String類型的集合保存。
}
workbook.close();// 關(guān)閉工作簿
// 迭代集合查看每行的數(shù)據(jù)
for (String ss : list){
System.out.println(ss);
}
}
}
作者:_凌浩雨
鏈接:https://www.jianshu.com/p/45e12e785aa7
來源:簡書
著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請注明出處。
- PC官方版
- 安卓官方手機版
- IOS官方手機版