Android中如何實現excel的匯入/匯出
阿新 • • 發佈:2019-01-30
在Android中使用第三方庫來實現對excel的檔案的匯入匯出
準備操作:從網路上下載第三方庫jxl.jar並且匯入到Android studio中
一、將記憶體中的資料匯出到Excel檔案中。
/**
* Created by Administrator on 2017/3/7.\
* 將資料匯出成文excel檔案
* 使用sqlite建立一個本地的結果表 將這個結果表對映成為一個實體類 將整個實體類轉化成excel表格
*/
//將記憶體中建立的實體類,儲存為excel檔案
public class ExpportDataBeExcel {
public void exportData (List<BeanExportData> datas){
//需要匯出的excel檔案的檔名
String fileName ="考情統計.xls";
//操作excel的物件
WritableWorkbook wwb = null;
try {
//根據當前的檔案路徑建立統計的檔案並且例項化出一個操作excel的物件
wwb = Workbook.createWorkbook(new File(Environment.getExternalStorageDirectory()+"/" +fileName));
} catch (IOException e) {
e.printStackTrace();
}
if (wwb != null ){
//建立底部的選項卡 傳參是選項卡的名稱 和 選型卡的索引
WritableSheet writableSheet = wwb.createSheet("2017年3月7日考勤",0);
//建立excel的表頭的資訊
String [] topic ={"序號","姓名","年齡" ,"日期"};
for (int i = 0 ; i<topic.length ; i++ ){
//橫向的在單元格中填寫資料
Label labelC = new Label(i,0,topic[i]);
try {
writableSheet.addCell(labelC);
} catch (WriteException e) {
e.printStackTrace();
}
}
//從實體中遍歷資料並將資料寫入excel檔案中
BeanExportData account;
ArrayList<String> li;
for ( int j = 0 ; j < datas.size() ; j++ ){
//將資料來源列表中的資料整合成 一個個的字串列表
account = datas.get(j);
li = new ArrayList<>();
li.add(account.getNumber());
li.add(account.getName());
li.add(account.getAge());
li.add(account.getData());
int k = 0;
for (String l:li){
//將單個的字串列表橫向的填入到excel表中
Label labelC = new Label(k,j+1,l);
k++;
try {
writableSheet.addCell(labelC);
} catch (WriteException e) {
e.printStackTrace();
}
}
li = null;
}
}
//將檔案從記憶體寫入到檔案當中
try {
wwb.write();
wwb.close();
} catch (IOException e) {
e.printStackTrace();
} catch (WriteException e) {
e.printStackTrace();
}
}
}
二、將Excel檔案中的內容匯入到記憶體
public class ImportDataFromExcel {
//將excel檔案匯入到記憶體中
private List<BeanExportData> datas;
public String ImportExcelData(){
datas = new ArrayList<>();
Workbook workbook = null;
String fileName ="考情統計.xls";
try {
workbook = Workbook.getWorkbook(new File(Environment.getExternalStorageDirectory()+"/"+fileName));
Sheet sheet = workbook.getSheet(0);
int rows = sheet.getRows();
int columns = sheet.getColumns();
//遍歷excel檔案的每行每列
for (int i=0; i < rows ;i++){
//遍歷行
List<String> li = new ArrayList<>();
for (int j = 0 ; j < columns ; j++ ){
Cell cell = sheet.getCell(j,i);
String result = cell.getContents();
if (i!=0){
li.add(result);
}
}
if (li.size()>0){
datas.add(new BeanExportData(li.get(0),li.get(1),li.get(2),li.get(3)));
}
li = null;
}
Gson gson = new Gson();
return gson.toJson(datas);
} catch (IOException e) {
e.printStackTrace();
} catch (BiffException e) {
e.printStackTrace();
}
return "error";
}
}
這裡寫連結內容
許不了你的一世溫柔,沒錯。我就是一個有情懷的程式設計師。