欧美成人精品手机在线观看_69视频国产_动漫精品第一页_日韩中文字幕网 - 日本欧美一区二区

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

[點晴永久免費OA]利用sheet.js解析excel文件

admin
2022年4月15日 11:15 本文熱度 1827

今天用的是Sheet.js的xlsx.core.min.js

官方文檔地址:https://github.com/SheetJS/sheetjs

主要功能

  • 解析符合格式的數(shù)據(jù)
  • 導(dǎo)出符合格式的數(shù)據(jù)
  • 利用中間層操作數(shù)據(jù)

讀取文件的方法

    • XLSX.read(data, read_options)://讀取data并解析。
    • XLSX.readFile(filename, read_options)://讀取filename文件并解析。
  • read_options
    • type:
      • base64: 以base64方式讀取;

      • binary: BinaryString格式(byte n is data.charCodeAt(n))

      • string: UTF8編碼的字符串;

      • buffer: nodejs Buffer;

      • array: Uint8Array,8位無符號數(shù)組;

      • file: 文件的路徑(僅nodejs下支持);

 

worksheet轉(zhuǎn)換數(shù)據(jù)格式

  • XLSX.utils.sheet_to_csv(worksheet):將表格數(shù)據(jù)轉(zhuǎn)化為csv格式。
  • XLSX.utils.sheet_to_txt(worksheet):將表格數(shù)據(jù)轉(zhuǎn)化為生成由utf16編碼的txt格式。
  • XLSX.utils.sheet_to_html(worksheet):將表格轉(zhuǎn)化為html文件。
  • XLSX.utils.sheet_to_json(worksheet): 將表格數(shù)據(jù)轉(zhuǎn)化為json格式。

表格操作

  • XLSX.utils.aoa_to_sheet(Array[][]):將二維數(shù)組轉(zhuǎn)化為worksheet對象。
  • XLSX.utils.json_to_sheet(Object):將js對象轉(zhuǎn)化為worksheet對象。
  • XLSX.utils.table_to_sheet(HTML):將DOM節(jié)點轉(zhuǎn)化為worksheet對象(一般為table元素、tr元素和th元素)。
  • XLSX.utils.sheet_add_aoa(worksheet, Array[][]):將二維數(shù)組中的數(shù)據(jù)添加到已有的worksheet中。
  • XLSX.utils.sheet_add_json(worksheet, Object):將js對象中的數(shù)據(jù)添加到已有的worksheet中。
  • XLSX.utils.book_append_sheet(workbook, worksheet, sheetname):將worksheet對象添加到workbook中, 并命名為sheetname

寫入數(shù)據(jù),導(dǎo)出文件

SheetJS通過三種方法寫入數(shù)據(jù), 這兩種方法均會對數(shù)字、字符串、nullundefined、日期等類型進(jìn)行自動解析:

  • XLSX.write(workbook, write_options)
    •   按照workbook中的數(shù)據(jù)轉(zhuǎn)化為文件所需要的格式, 但不生成文件。
    •   第一個參數(shù):workbook對象, 第二個參數(shù):設(shè)置對象(對生成文件格式的一些設(shè)置)
    •        場景:需要通過異步請求來修改服務(wù)器上的文件
  • XLSX.writeFile(workbook, filename[, write_options])
    •   按照workbook對象生成文件。若在瀏覽器端, 會自動下載該文件。在Node端, 會自動生成該文件并保存到本地。
    •        第一個參數(shù):workbook對象, 第二個參數(shù):生成文件的文件名,第三個參數(shù):可選,設(shè)置對象(對生成文件格式的一些設(shè)置)
  • XLSX.writeFileAsync(filename, workbook, o, cb): 按照workbook對象生成文件。當(dāng)o執(zhí)行完畢后, 調(diào)用cb回調(diào)函數(shù)。
    有關(guān)write_options的內(nèi)容詳見write_options


今天完成的任務(wù)是這樣的

1.選擇文件 前端解析出excel文檔內(nèi)容 (只針對第一行為表頭的表格,多個表只取第一個表)


根據(jù)解析的數(shù)據(jù) 和字段一一匹配,用于批量更新操作


 js代碼:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
// 解析選擇的表格
            excelFn(file) {
                const fileReader = new FileReader();
                var that = this;
                fileReader.onload = (ev) => {
                    const data = ev.target.result;
                    // 讀取整個文件數(shù)據(jù)
                    const workbook = XLSX.read(data, {
                        type: 'binary',
                    })
                        // 取第一張表
                    const wsname = workbook.SheetNames[0]                                                 // 獲取到名為wsname的表
                                          // let worksheet = workbook.Sheets[wsname];
                    var outArray = [], outTitArray = [];
                                            // 生成json表格內(nèi)容
                    const ws = XLSX.utils.sheet_to_json(workbook.Sheets[wsname])
                                           // 輸出表格對應(yīng)位置是什么值
                    // const ws1 = XLSX.utils.sheet_to_slk(workbook.Sheets[wsname])
                                           // 生成HTML輸出
                    // const ws2 = XLSX.utils.sheet_to_html(workbook.Sheets[wsname])
                                            // 生成分隔符分隔值輸出
                    // const ws3 = XLSX.utils.sheet_to_csv(workbook.Sheets[wsname])
                                            // 生成公式列表(具有值回退)
                    // const ws4 = XLSX.utils.sheet_to_formulae(workbook.Sheets[wsname])
                                            // 生成UTF16格式的文本
                    // const ws5 = XLSX.utils.sheet_to_txt(workbook.Sheets[wsname])
                    //判斷是否為空表
                    if (ws.length < 1) {
                        common.nameEroor($('#excelBtn'), '表格內(nèi)容為空')
                    else {
                                                  //獲取處理過的數(shù)據(jù)
                        ws.forEach((item, index) => {
                            for (var itemName in item) {
                                var obj = {};
                                obj.name = itemName;
                                obj.value = item[itemName]
                                outArray.push(obj);
                                 
                            }
                        })
 
                        console.log(outArray)
                        that.matchView(outArray);
                        outExcel = outArray;
                    }
                }
                fileReader.readAsBinaryString(file)
            },                                                                               

 

  


該文章在 2022/4/15 11:15:25 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點晴ERP是一款針對中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點晴PMS碼頭管理系統(tǒng)主要針對港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場、車隊、財務(wù)費用、相關(guān)報表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點,圍繞調(diào)度、堆場作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點晴WMS倉儲管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務(wù)都免費,不限功能、不限時間、不限用戶的免費OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved