91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android怎么讀寫Excel

發布時間:2023-05-09 17:53:22 來源:億速云 閱讀:226 作者:iii 欄目:開發技術

這篇文章主要介紹“Android怎么讀寫Excel”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“Android怎么讀寫Excel”文章能幫助大家解決問題。

Excel

apache 為 java開發者們提供了一套excel表格讀寫的工具:POI ,對于一個小白來說每次讀寫使用POI需要寫一套復雜的讀寫流程實屬不易,這里小編為大家封裝了一套簡單易用的excel讀寫工具

注解描述
@ExcelReadCellName 標記表頭名稱
@ExcelTable使用類上用來指定表名
@ExcelWriteAdapter展開數據集合適配器
@ExcelWriteCell輸出文件編輯列名稱,列號信息。
@ExcelReadAggregate標記類成員變量用來保存沒有標記的數據

讀取excel文件:

數據源(表名稱:測試表1):

物品編碼物品名稱存放位置備注日期
TY122635廚房-面團分割機0SDS-30S2021.2.1
TY122654黑白激光打印機0兄弟 HL-5590DN2021.2.2
TY122652黑白激光打印機0兄弟 HL-5590DN2021.2.3
TY122634臺式計算機0聯想ThinkCentre M710t-D7492021.2.4

創建實體對象:

@ExcelTable(sheetName = "測試表1")
public class Table {
    @ExcelReadCell(name = "存放位置")
    public String storageLocation;
    @ExcelReadCell(name = "物品名稱")
    public String name;
    @ExcelReadCell(name = "物品編碼")
    public String code;
    //指定此變量保存其他數據,也可以不處理
    @ExcelReadAggregate
    public String extend;
}

這里只指定了三列數據,其他沒有指定的數據列(備注、日期),將被聚合保存到被**@ExcelReadAggregate標注extend變量中,當然如果不需要這些數據也可以不用聲明變量使用@ExcelReadAggregate**標注。

被@ExcelReadAggregate標注的對象接收的是一個JsonArray String 對象。

Table
{ 
storageLocation='0',
note='SDS-30S', 
name='廚房-面團分割機', 
code='TY2023122635', 
extend=
'[{"name":"日期","value":"2021.2.1","index":7},{"name":"備注","value":"SDS30S","index":8}]'

Use:

Excel.get().readWith(is).doReadXLSX(new IParseListener<Table>() {
    @Override
    public void onStartParse() {
    }
    @Override
    public void onParse(Table test, JSONArray jsonArray) {
    }
    @Override
    public void onParseError(Exception e) {
    }
    @Override
    public void onEndParse() {
    }
}, Table.class);

輸出excel文件:

@ExcelTable(sheetName = "測試表1")
public class Table {
    @ExcelWriteCell(writeIndex = 2, writeName = "存放位置")
    public String storageLocation;
    @ExcelWriteCell(writeIndex = 1, writeName = "物品名稱")
    public String name;
    @ExcelWriteCell(writeIndex = 0, writeName = "物品編碼")
    public String code;
    //如果你將多個數據聚合在某一個變量中,可以通過實現IConvertParserAdapter接口來處理數據以便正確寫入文件
    @ExcelWriteAdapter(adapter = JsonArrayConvertAdapter.class)
    public String extend;
}

@ExcelWriteCell

ExcelWriteCell注解有兩個屬性,writeIndex指定數據所屬列,writeName指定列名稱

@ExcelWriteAdapter

ExcelWriteAdapter用來輔助工具正確寫入用戶自定義的聚合數據。

這里extend 的數據如下:

[
    {
        "name":"日期",
        "value":"2021.2.9",
        "index":3
    },
    {
        "name":"備注",
        "value":"1.0",
        "index":4
    }
]

Name 表示列名稱,value表示值,index表示列號,這里的數據結構可以自行定義。

IConvertParserAdapter 接口

使用了聚合數據,就需要實現IConvertParserAdapter接口用來解析你的聚合數據并通過ISheet接口回調數據的列名稱,值,列號等信息。

針對上面的聚合數據:

public class JsonArrayConvertAdapter implements IConvertParserAdapter {
    @Override
    public void convert(ISheet sheet, Object o) {
        JSONArray jsonArray = null;
        try {
            jsonArray = new JSONArray((String) o);
        } catch (JSONException e) {
            e.printStackTrace();
        }
        for (int i = 0; i < jsonArray.length(); i++) {
            JSONObject json = (JSONObject) jsonArray.opt(i);
            String name = (String) json.opt("name");
            Object value = json.opt("value");
            int index = (int) json.opt("index");
            sheet.onCreateCell(name, value, index);
        }
    }
}

@ExcelWriteAdapter使用方法:

 @ExcelWriteAdapter(adapter = JsonArrayConvertAdapter.class)
 public String extend;

Use:

 Excel.get().writeWith(file).doWrite(new IWriteListener() {
                        @Override
                        public void onStartWrite() {
                            Log.d(TAG, "onStartWrite: ");
                        }
                        @Override
                        public void onWriteError(Exception e) {
                            Log.d(TAG, "onWriteError: "+e);
                        }
                        @Override
                        public void onEndWrite() {
                            Log.d(TAG, "onEndWrite: ");
                        }
                    },data);

關于“Android怎么讀寫Excel”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

广德县| 和政县| 闽侯县| 西吉县| 五华县| 江安县| 平果县| 泰来县| 延边| 东平县| 镇赉县| 准格尔旗| 中牟县| 青阳县| 修武县| 澄城县| 扎兰屯市| 徐闻县| 社会| 噶尔县| 彩票| 太仆寺旗| 信丰县| 沈丘县| 吴川市| 长宁县| 延川县| 名山县| 宜州市| 册亨县| 十堰市| 赫章县| 祥云县| 濮阳市| 葫芦岛市| 通州区| 酒泉市| 天等县| 肥西县| 吉木萨尔县| 定安县|