---
title: "EXCEL表格處理"
description: "EMILY.RPA EXCEL 表格處理模組：以表格名、資料起始儲存格與表頭欄位將 EXCEL 資料正規化，處理後輸出 CSV 或 EXCEL 檔案。"
source: https://docs.emily.tips/wap/excel2csv
---

# EXCEL表格處理

EXCEL表格輸入處理後輸出成 CSV 或 EXCEL 格式檔案。利用指定表格名、資料起始儲存格、表頭欄位將載入資料正規化，呈現一致的資料結構(input輸入陣列)提供 Low-Code 應用處理。

![](https://docs.emily.tips/img/zh/wap-061.png)

## 參數

**`EXCEL`** - EXCEL 輸入檔，點擊「**PICK**」選取檔案、鍵盤輸入工作資料夾中的EXCEL檔名，或使用 **%FILENAME%** 變數。

**`SHEET`** - EXCEL 輸入表格名稱，留空代表為檔案中的第一個 sheet。

**`DATA CELL`** - 表格資料的起點(左上)儲存格A1表示法，不包含表頭。

**`HEADER`** - 輸入表格的表頭欄位命名陣列，有兩種 JSON 陣列表示法，第一種是簡單的一對一字串陣列，陣列中的第一個字串對應到表格的第一個表頭欄位，第二個字串則對應到第二個表頭欄位，中間不能跳過，以此類推：

```json
["A欄表頭名稱", "B欄表頭名稱", ...] 
```

第二種是較為彈性的物件陣列，利用物件中的[正規表達式](https://developer.mozilla.org/zh-TW/docs/Web/JavaScript/Guide/Regular_Expressions) regexp、偏移值 offset、A1 表示法等屬性作為定位表頭欄位的依據，再以物件中的 name 屬性值作為定位到的表頭欄位名稱：

```json
[
  {
    "regexp": "品名$",  // 找到表格資料起點上方值符合”品名“結尾的儲存格
    "name": "product"  // 將找到的儲存格做為表頭欄位，並命名為”product"
  },
  {
    "regexp": "品名$",  // 找到表格資料起點上方值符合”品名“結尾的儲存格
    "offset": 1, // 往右偏移一格
    "name": "price"  // 將找到的儲存格做為表頭欄位，並命名為"price"
  },
  {
    "A1": "C",  // 找到欄位C（以A1表示法來看）
    "name": "stock"  // 將找到的儲存格做為表頭欄位，並命名為"stock"
  }
] 
```

**`OUTPUT`** - 爲輸出檔案格式，有 CSV 與 XLSX 兩種。

## No-Code 編輯器

提供：「**重設 output.csv**」、「**排序**」、「**過濾**」等無程式碼指令。例如，將指定表格檔案以 `觸及率` 欄位 `DESCENDING` 遞減排序。 

![](https://docs.emily.tips/img/zh/wap-062.png)

## Low-Code 編輯器

![](https://docs.emily.tips/img/zh/wap-063.png)

### input 輸入陣列

在 input 陣列中的每個物件元素代表輸入表格的一列資料，物件中的 key 為表頭欄位，value 為該欄位在這一列資料的值。

```javascript
// 印出輸入表格每筆資料的指定欄位
input.forEach((row, index) => {
  console.log(index + '. 品名:' + row.product + ', 價格:' + row.price)
})
```

### output 輸出陣列

加入 output 陣列中的每個物件元素代表輸出表格的一列資料，物件中的 key 為表頭欄位，value 為該欄位在這一列資料的值。也可以利用 output.header 陣列指定輸出表格的標頭欄位：

```javascript
// 輸出價格高於 100 的表格，並加上 5% 的税
input.forEach((row) => {
  if (row.price > 100) {
    output.push({
      name: row.product,
      price: row.price,
      tax: row.price * 0.05
    })
  }
})

// 指定表頭欄位
output.header.push('name','price','tax')
```
