Exceljson解析

一、JS解析Excel表格

在Web應用程序中,通常需要對Excel表格進行解析,以便應用程序可以使用其中的數據。如何使用JavaScript從Excel表格中解析數據?以下是一個簡單的例子,演示如何使用js-xlsx庫從Excel表格中解析數據:

  
    // 引入js-xlsx庫
    import XLSX from 'xlsx';

    // 從Excel表格中獲取需要解析的數據
    const fileReader = new FileReader();
    fileReader.onload = event => {
      const { result } = event.target;
      const workbook = XLSX.read(result, { type: 'binary' });
      const sheetName = workbook.SheetNames[0];
      const worksheet = workbook.Sheets[sheetName];
      const data = XLSX.utils.sheet_to_json(worksheet, { header: 1 });
      
      console.log(data);
    };
    fileReader.readAsBinaryString(file);
  

在上述代碼中,引入了js-xlsx庫,使用File API從Excel表格中獲取需要解析的數據。使用XLSX.read函數對Excel表格進行解析,獲取sheet名稱和worksheet數據。使用XLSX.utils.sheet_to_json函數將worksheet數據轉換為JSON格式,以供應用程序使用。

二、Excel解析JSON

在某些情況下,需要將Excel數據轉換為JSON格式。以下是一個簡單的例子,演示如何使用JavaScript將Excel數據轉換為JSON格式:

  
    // 引入js-xlsx庫
    import XLSX from 'xlsx';

    // 從Excel表格中獲取需要解析的數據
    const fileReader = new FileReader();
    fileReader.onload = event => {
      const { result } = event.target;
      const workbook = XLSX.read(result, { type: 'binary' });
      const sheetName = workbook.SheetNames[0];
      const worksheet = workbook.Sheets[sheetName];
  
      const headers = {};
      const data = [];
      const range = XLSX.utils.decode_range(worksheet['!ref']);
      for (let i = range.s.r; i <= range.e.r; i++) {
        for (let j = range.s.c; j <= range.e.c; j++) {
          const cell = worksheet[XLSX.utils.encode_cell({ r: i, c: j })];
          if (i === range.s.r) {
            headers[j] = cell.v;
          } else {
            if (!data[i]) {
              data[i] = {};
            }
            data[i][headers[j]] = cell.v;
          }
        }
      }
      
      console.log(data);
    };
    fileReader.readAsBinaryString(file);
  

在上述代碼中,使用XLSX.utils.decode_range函數獲取Excel表格的範圍。通過遍歷Excel表格中的每個單元格,將表頭以及對應的數據存儲在JavaScript對象中。最終將JavaScript對象轉換為JSON格式。

三、ExcelJSON導出Excel

在某些情況下,需要將JSON數據導出為Excel表格。以下是一個簡單的例子,演示如何使用JavaScript將JSON數據導出為Excel表格:

  
    // 引入js-xlsx庫
    import XLSX from 'xlsx';

    // 將JSON數據轉換為Excel表格
    const sheetName = 'Sheet1';
    const worksheet = XLSX.utils.json_to_sheet(data);
    const workbook = XLSX.utils.book_new();
    XLSX.utils.book_append_sheet(workbook, worksheet, sheetName);
    XLSX.writeFile(workbook, 'data.xlsx');
  

在上述代碼中,使用XLSX.utils.json_to_sheet函數將JSON數據轉換為Excel表格數據。創建一個新的工作簿,並使用XLSX.utils.book_append_sheet函數將工作表添加到新工作簿中。最後,使用XLSX.writeFile函數將新工作簿寫入到磁盤上的文件中。

四、Spring解析Excel表格

在Java應用程序中,通常需要對Excel表格進行解析,以便應用程序可以使用其中的數據。如何使用Spring從Excel表格中解析數據?以下是一個簡單的例子,演示如何使用Spring Boot和Apache POI庫從Excel表格中解析數據:

  
    // 引入poi包
    import org.apache.poi.ss.usermodel.Workbook;
    import org.apache.poi.ss.usermodel.WorkbookFactory;

    // 解析Excel表格數據
    public List parseExcel(File file) {
      try {
        final Workbook workbook = WorkbookFactory.create(file);
        final Sheet sheet = workbook.getSheetAt(0);
        final Row headerRow = sheet.getRow(0);
        final List result = new ArrayList();
        
        sheet.forEach(row -> {
          if (row.getRowNum() != 0) {
            final Map rowData = new HashMap();
            row.forEach(cell -> {
              final String headerName = headerRow.getCell(cell.getColumnIndex()).getStringCellValue();
              rowData.put(headerName, cell.getStringCellValue());
            });
            result.add(rowData);
          }
        });
        workbook.close();
        return result;
      } catch (IOException | InvalidFormatException e) {
        e.printStackTrace();
        return new ArrayList();
      }
    }
  

在上述代碼中,使用Apache POI庫解析Excel表格數據。使用WorkbookFactory.create函數將Excel表格文件傳遞給Workbook對象進行解析。Workbook對象包含了Sheet對象,可以使用getSheetAt函數獲取Sheet對象。使用Sheet對象可以獲取某一行,使用getRow函數獲取Row對象。使用Row對象可以獲取具體的單元格,使用getCell函數獲取Cell對象。最後,使用forEach函數遍歷所有的行和單元格,將數據存儲在Java Map和List中。

五、ExcelJSON解析

ExcelJSON是一種將Excel和JSON數據結合的數據格式。如何使用JavaScript從ExcelJSON中解析數據?以下是一個簡單的例子,演示如何從ExcelJSON中解析數據和導出ExcelJSON數據:

  
    // 引入exceljson包
    import ExcelJSON from 'excel/json';

    // 從ExcelJSON中解析數據
    const parser = new ExcelJSON.Parser();
    parser.parse(jsonData).then(data => {
      console.log(data);
    });

    // 導出數據到ExcelJSON
    const exporter = new ExcelJSON.Exporter();
    exporter.export(data).then(jsonData => {
      console.log(jsonData);
    });
  

在上述代碼中,使用ExcelJSON包中的Parser和Exporter類進行ExcelJSON數據的解析和導出。使用Parser類可以解析ExcelJSON數據,使用Exporter類可以導出數據到ExcelJSON格式。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/154203.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-15 03:26
下一篇 2024-11-15 03:26

發表回復

登錄後才能評論