共用方式為


文字/CSV

總結

項目 說明
發行狀態 一般可用性
產品 Excel
Power BI (語意模型)
Power BI (數據流)
Fabric(Dataflow Gen2)
Power Apps(數據流)
Dynamics 365 Customer Insights
Analysis Services
函數參考文檔 File.Contents
Lines.FromBinary
Csv.Document

備註

某些功能可能會存在於一個產品中,但由於部署排程和主機特定功能,而不存在於其他產品中。

支援的功能

  • 進口

從 Power Query Desktop 連線到本機文字/CSV 檔案

若要載入本機文字或 CSV 檔案:

  1. 選取 [取得數據] 中的 [文字/CSV] 選項。 此動作會啟動本機檔案瀏覽器,您可以在其中選取文字檔。

    開啟檔案瀏覽器時選取文字文件的螢幕快照。

    選取 [開啟] 以開啟檔案。

  2. [導覽器] 中,您可以選取 [ 轉換數據] 來轉換 Power Query 編輯器中的數據,或選取 [ 載入] 來載入數據。

    導覽器中範例文字的螢幕快照。

從 Power Query Online 連線到文字/CSV 檔案

若要載入本機文字或 CSV 檔案:

  1. 從 [ 數據源] 頁面中,選取 [文字/CSV]。

  2. [連線設定] 中,上傳檔案或輸入您想要之本機文字或 CSV 檔案的檔案路徑。

    在線文本文件選取畫面的螢幕快照。

  3. 數據閘道選取內部部署數據閘道。

  4. 輸入使用者名稱及密碼。

  5. 選取 下一步

  6. [導覽器] 中,選取 [轉換數據 ] 以開始在Power Query 編輯器中轉換數據。

    您選取 [轉換資料] 的線上導覽器視窗螢幕快照。

從 Web 載入

若要從 Web 載入文字或 CSV 檔案,請選取 Web 連接器、輸入檔案的網址,然後遵循任何認證提示。

文字/CSV 分隔符

Power Query 會將 CSV 視為結構化檔案,並以逗號做為分隔符,這是文本檔的特殊案例。 如果您選擇文字檔,Power Query 會自動嘗試判斷是否有分隔符分隔值,以及該分隔符是什麼。 如果它可以推斷分隔符,它會自動將它視為結構化數據源。

非結構化文字

如果您的文字檔沒有結構,您會得到一個單一欄位,每行在源文字中形成一行新的資料。 作為非結構化文字的範例,您可以使用下列內容來考慮記事本檔案:

Hello world.
This is sample data.

當您載入它時,您會看到一個導航畫面,該畫面會將每一行呈現在各自的資料列中。

導覽器的螢幕快照,其中包含從簡單非結構化文本檔載入的數據。

在此對話框中,您只能設定一件事,也就是 [ 檔案來源] 下拉式清單選取。 此下拉式清單可讓您選取用來產生檔案 的字元集 。 目前不會推斷字元集,而且只有在 UTF-8 BOM開頭時才會推斷UTF-8

文字/CSV 檔案文化特性選取項目的螢幕快照。

CSV

您可以 在這裡找到範例 CSV 檔案。

除了檔案來源之外,CSV 也支援指定分隔符,以及如何處理數據類型偵測。

導覽器的螢幕快照,其中顯示從 csv 檔案載入的數據。

可用的分隔符包括冒號、逗號、等號、分號、空格、製表元、自定義分隔符(可以是任何字串),以及固定寬度(以某些標準字元數分割文字)。

csv 文件分隔符選項螢幕快照。

最後一個下拉式清單可讓您選取要如何處理數據類型偵測。 它可以根據前 200 個數據列或整個數據集來完成。 此外,您可以選擇不進行自動資料類型偵測,而是讓所有數據行預設為 「文字」。 警告:如果您在整個數據集上執行此動作,可能會導致編輯器中數據的初始載入速度變慢。

csv 檔案之數據類型推斷選取項目的螢幕快照。

由於推斷可能不正確,因此在載入之前,值得仔細檢查設定。

結構化文字

當 Power Query 可以偵測文字文件的結構時,它會將文字檔視為分隔符分隔值檔案,並在開啟 CSV 時提供相同的選項,這基本上是表示分隔符類型的擴展名檔案。

例如,如果您將下列範例儲存為純文字檔案,它會被讀取為具有製表符分隔,而不是非結構化文字。

Column 1	Column 2	Column 3
This is a string.	1	ABC123
This is also a string.	2	DEF456

顯示從結構化文本檔載入資料的螢幕快照。

此結構可用於任何類型的其他分隔符型檔案。

編輯來源

編輯來源步驟時(在 Power Query Desktop 的 [ 套用的步驟 ] 窗格中,您會看到與最初載入時略有不同的對話框。 根據您目前將檔案視作什麼(也就是:文字或 csv),您會看到一個包含各種下拉式選單的畫面。

您在存取 CSV 檔案的查詢上編輯來源步驟的對話框螢幕快照。

[ 換行符 ] 下拉式清單可讓您選取是否要套用引號內的換行符。

下拉式清單的螢幕快照,其中您選取 CSV 檔案的換行符樣式。

例如,如果您編輯先前提供的「結構化」範例,您可以新增換行符。

Column 1	Column 2	Column 3
This is a string.	1	"ABC
123"
This is also a string.	2	"DEF456"

如果 換行符 設定為 忽略引號換行符,這個範例將在同一列中把字串的下半部分放在上半部分下面。

載入 CSV 檔案時忽略引號中的換行符。

如果 換行符 設定為 [ 套用所有換行符],此範例會載入額外的數據列,而換行符之後的內容是該數據列中唯一的內容(確切輸出可能取決於檔案內容的結構)。

載入套用引號換行符的 CSV 檔案。

[ 開啟檔案為 ] 下拉式清單可讓您編輯要載入檔案的內容,這對於疑難解答很重要。 對於技術上不是 CSV 的結構化檔案(例如儲存為文字檔的索引標籤分隔值檔案),您仍應將 [開啟檔案 ] 設定為 CSV。 此設定也會決定對話框其餘部分可用的下拉式清單。

變更文件類型。

文字/CSV 範例

Power Query 中的文字/CSV 範例是 Power BI Desktop 和 Power Query Online 中正式推出的功能。 當您使用 Text/CSV 連接器時,您會看到導覽器左下角的 [ 使用範例擷取資料表 ] 選項。

使用 [使用範例擷取數據表] 選項。

當您選取該按鈕時,會進入 [ 使用範例擷取數據表 ] 頁面。 在此頁面上,您會指定您想要從 Text/CSV 檔案擷取之數據的範例輸出值。 輸入數據行的第一個儲存格之後,數據行中的其他儲存格就會填入。若要正確擷取數據,您可能需要在數據行中輸入一個以上的數據格。 如果數據行中的某些儲存格不正確,您可以修正第一個不正確的儲存格,並再次擷取數據。 若要確保成功擷取數據,請檢查前幾個數據格中的數據。

備註

建議您依欄順序輸入範例。 成功填寫數據行之後,請建立新的數據行,並開始在新數據行中輸入範例。

指定要擷取資料的範例輸出值。

建構該數據表之後,您可以選取以載入或轉換數據。 請注意,產生的查詢如何包含針對數據擷取所推斷之所有步驟的詳細明細。 這些步驟是您可以視需要自定義的一般查詢步驟。

數據擷取步驟的詳細明細。

故障排除

從 Web 載入檔案

如果您要從 Web 要求文字/csv 檔案並修改標頭,而且擷取的檔案數足夠多到需要擔心流量限制,您應該考慮使用 Web.Contents 包裝您的 Binary.Buffer() 呼叫。 在此情況下,緩衝處理檔案後再提升標頭會導致檔案只被要求一次。

使用大型 CSV 檔案

如果您在 Power Query Online 編輯器中處理大型 CSV 檔案,您可能會收到內部錯誤。 建議您先使用較小的 CSV 檔案、套用編輯器中的步驟,一旦完成,請將路徑變更為較大的 CSV 檔案。 此方法可讓您更有效率地工作,並減少在線上編輯器中遇到超時的機會。 我們不希望您在重新整理期間遇到此錯誤,因為我們允許較長的逾時持續時間。

將非結構化文字轉換為結構化文字

在罕見的情況下,在段落中具有類似逗號的檔可能會解譯為 CSV。 如果發生此問題,請在Power Query 編輯器中編輯 [來源] 步驟,然後在 [開啟檔案為] 下拉式清單中選取 [文字],而不是 CSV

Power BI Desktop 中的欄

當您匯入 CSV 檔案時,Power BI Desktop 會產生 columns=x (其中 x 是初始匯入期間 CSV 檔案中的數據行數目),做為 Power Query 編輯器中的步驟。 如果您稍後新增更多數據行,且數據源設定為重新整理,則不會重新整理超過初始 x 個數據行計數的任何數據行。

錯誤:連線已被主機關閉

從 Web 來源載入文字/CSV 檔案並提升標頭時,您有時可能會遇到下列錯誤:"An existing connection was forcibly closed by the remote host""Received an unexpected EOF or 0 bytes from the transport stream." 主機可能會因為採用保護措施並關閉可能暫時暫停的連線而造成這些錯誤,例如,當等待另一個數據源連線進行聯結或附加作業時。 若要解決這些錯誤,請嘗試新增 Binary.BufferTable.Buffer 呼叫,以下載檔案、將它載入記憶體,然後立即關閉連線。 此動作應該在下載期間防止任何暫停,並避免主機在內容取得之前強制關閉連線。

下列範例說明此因應措施。 在產生的數據表傳遞至 Table.PromoteHeaders 之前,必須先進行此緩衝處理。

  • 原始:
Csv.Document(Web.Contents("https://.../MyFile.csv"))
  • 使用 Binary.Buffer
Csv.Document(Binary.Buffer(Web.Contents("https://.../MyFile.csv")))
  • 使用 Table.Buffer
Table.Buffer(Csv.Document(Web.Contents("https://.../MyFile.csv")))