Azure Data Factory 和 Azure Synapse Analytics 中的 Excel 檔案格式

適用於:Azure Data Factory Azure Synapse Analytics

您要剖析 Excel 檔案時,請遵循本文。 此服務支援「.xls」和「.xlsx」。

下列連接器支援 Excel 格式:Amazon S3Amazon S3 相容儲存體Azure BlobAzure Data Lake Storage Gen1Azure Data Lake Storage Gen2Azure 檔案檔案系統FTPGoogle Cloud StorageHDFSHTTPOracle Cloud StorageSFTP。 支援 Excel 格式作為來源,但不支援接收。

注意

使用 HTTP 時不支援「.xls」格式。

資料集屬性

如需可用來定義資料集的區段和屬性完整清單,請參閱資料集一文。 本節提供 Excel 資料集支援的屬性清單。

屬性 描述 必要
type 資料集的類型屬性必須設為 Excel Yes
location 檔案的位置設定。 每個檔案型連接器都包含專屬的位置類型,並支援 location 下的屬性。 Yes
sheetName 讀取資料的 Excel 工作表名稱。 指定 sheetNamesheetIndex
sheetIndex 從 0 開始,讀取資料的 Excel 工作表索引。 指定 sheetNamesheetIndex
range 在指定工作表中的儲存格範圍,尋找選擇性資料,例如:
- 未指定:從第一個非空白的資料列和資料行,讀取作為表格的整個工作表
- A3:從指定的儲存格開始讀取資料表,以動態方式偵測該儲存格下方所有資料列和右側所有資料行
- A3:H5:讀取作為資料表的此固定範圍
- A3:A3:讀取此單一儲存格
No
firstRowAsHeader 指定是否視指定工作表/範圍中的第一個資料列,為包含資料行名稱的標題行。
允許的值為 truefalse (預設值)。
No
nullValue 指定 Null 值的字串表示法。
預設值是空字串
No
compression 設定檔案壓縮的屬性群組。 當您要在活動執行期間執行壓縮/解壓縮時,請設定此區段。
type
(compression)
用來讀取/寫入 JSON 檔案的壓縮轉碼器。
允許的值為 bzip2gzipdeflateZipDflateTarGzipTarsnappylz4。 預設為不壓縮。
請注意,複製活動目前不支援「snappy」&「lz4」,而對應資料流不支援「ZipDflate」、「TarGzip」和「Tar」。
請注意,使用複製活動解壓縮 ZipDeflate 檔案,並寫入檔案型接收資料存放區後,會擷取檔案至資料夾:<path specified in dataset>/<folder named as source zip file>/
不可以。
等級
(compression)
壓縮比。
允許的值為 OptimalFastest
- Fastest:即使產生的檔案不以最佳方式壓縮,也應盡快完成壓縮作業。
- Optimal:即使作業需要較長時間完成,壓縮作業也應以最佳方式壓縮。 如需詳細資訊,請參閱 壓縮層級 主題。
No

以下是 Azure Blob 儲存體上的 Excel 資料集範例:

{
    "name": "ExcelDataset",
    "properties": {
        "type": "Excel",
        "linkedServiceName": {
            "referenceName": "<Azure Blob Storage linked service name>",
            "type": "LinkedServiceReference"
        },
        "schema": [ < physical schema, optional, retrievable during authoring > ],
        "typeProperties": {
            "location": {
                "type": "AzureBlobStorageLocation",
                "container": "containername",
                "folderPath": "folder/subfolder",
            },
            "sheetName": "MyWorksheet",
            "range": "A3:H5",
            "firstRowAsHeader": true
        }
    }
}

複製活動屬性

如需可用來定義活動的區段和屬性完整清單,請參閱管線一文。 本節提供 Excel 來源支援的屬性清單。

Excel 作為來源

複製活動的 [來源] 區段支援下列屬性。

屬性 描述 必要
type 複製活動來源的類型屬性必須設為 ExcelSource Yes
storeSettings 屬性群組,可決定從資料存放區讀取資料的方式。 在 storeSettings 下,每個檔案型連接器都包含專屬的支援讀取設定。 No
"activities": [
    {
        "name": "CopyFromExcel",
        "type": "Copy",
        "typeProperties": {
            "source": {
                "type": "ExcelSource",
                "storeSettings": {
                    "type": "AzureBlobStorageReadSettings",
                    "recursive": true
                }
            },
            ...
        }
        ...
    }
]

對應資料流程屬性

在對應資料流中,您可以在下列資料存放區讀取 Excel 格式:Azure Blob 儲存體Azure Data Lake Storage Gen1Azure Data Lake Storage Gen2Amazon S3SFTP。 您可以使用 Excel 資料集或內嵌資料集,指向 Excel 檔案。

來源屬性

下表列出 Excel 來源支援的屬性。 您可以在 [來源選項] 索引標籤中編輯這些屬性。使用內嵌資料集時,您會看到其他檔案設定,與「資料集屬性」一節所述的屬性相同。

名稱 描述 必要 允許的值 資料流程指令碼屬性
萬用字元路徑 系統會處理符合萬用字元路徑的所有檔案。 覆寫資料集的資料夾和檔案路徑集合。 String[] wildcardPaths
分割區根路徑 如果是分割的檔案資料,您可以輸入分割區根路徑,讀取作為資料行的分割資料夾 String partitionRootPath
檔案清單 您的來源是否指向列出待處理檔案的文字檔 truefalse fileList
儲存檔案名稱的資料行 使用來源檔案名稱和路徑,建立新的資料行 String rowUrlColumn
完成後 處理後刪除或移動檔案。 從容器根開始的檔案路徑 刪除:truefalse
移動:['<from>', '<to>']
purgeFiles
moveFiles
依上次修改時間篩選 根據上次變更檔案的時間,選擇篩選的檔案 時間戳記 modifiedAfter
modifiedBefore
允許找不到檔案 如果為 true,找不到檔案時不會擲回錯誤 truefalse ignoreNoFilesFound

來源範例

下圖是在對應資料流中使用資料集模式的 Excel 來源設定範例。

Excel source

相關的資料流程指令碼:

source(allowSchemaDrift: true,
    validateSchema: false,
    wildcardPaths:['*.xls']) ~> ExcelSource

如果您使用內嵌資料集,即會在對應資料流中,看到下列來源選項。

Excel source inline dataset

相關的資料流程指令碼:

source(allowSchemaDrift: true,
    validateSchema: false,
    format: 'excel',
    fileSystem: 'container',
    folderPath: 'path',
    fileName: 'sample.xls',
    sheetName: 'worksheet',
    firstRowAsHeader: true) ~> ExcelSourceInlineDataset

處理非常大型的檔案Excel

Excel連接器不支援複製活動的串流讀取,而且必須先將整個檔案載入記憶體,才能讀取資料。 若要匯入架構、預覽資料或重新整理Excel資料集,必須在 HTTP 要求逾時之前傳回資料, (100s) 。 對於大型Excel檔案,這些作業可能無法在該時間範圍內完成,導致逾時錯誤。 如果您想要將大型Excel檔案 (> 100 MB) 移至另一個資料存放區,您可以使用下列其中一個選項來解決這項限制:

  • 使用自我裝載整合執行時間 (SHIR) ,然後使用 複製活動 將大型Excel檔案移至具有 SHIR 的另一個資料存放區。
  • 將大型Excel檔案分割成數個較小的檔案,然後使用複製活動移動包含檔案的資料夾。
  • 使用資料流程活動,將大型Excel檔案移至另一個資料存放區。 資料流程支援Excel的串流讀取,並可快速移動/傳輸大型檔案。
  • 手動將大型Excel檔案轉換成 CSV 格式,然後使用複製活動移動檔案。

下一步