1. 程式人生 > >Android中如何實現excel的匯入/匯出

Android中如何實現excel的匯入/匯出

在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";
    }
}

這裡寫連結內容
許不了你的一世溫柔,沒錯。我就是一個有情懷的程式設計師。