文字/CSV
摘要
項目 | 說明 |
---|---|
發行狀態 | 正式發行 |
產品 | Excel Power BI (語意模型) Power BI (數據流) 網狀架構 (資料流 Gen2) Power Apps (數據流) Dynamics 365 Customer Insights Analysis Services |
函式參考檔 | File.Contents Lines.FromBinary Csv.Document |
注意
某些功能可能會存在於一個產品中,但由於部署排程和主機特定功能,而不存在其他功能。
支援的功能
- Import
從 Power Query Desktop 連線 至本機文字/CSV 檔案
若要載入本機文字或 CSV 檔案:
選取 [取得數據] 中的 [文字/CSV] 選項。 此動作會啟動本機檔案瀏覽器,您可以在其中選取文字檔。
選取 [開啟] 以開啟檔案。
從 [導覽器] 中,您可以選取 [轉換數據] 來轉換 Power Query 編輯器 中的數據,或選取 [載入] 載入數據。
從 Power Query Online 將文字/CSV 檔案 連線
若要載入本機文字或 CSV 檔案:
從 [ 數據源] 頁面中,選取 [文字/CSV]。
在 [連線 ion 設定] 中,輸入您想要之本機文字或 CSV 檔案的檔案路徑。
從 數據閘道選取內部部署數據閘道。
輸入使用者名稱及密碼。
選取 [下一步]。
從 [導覽器] 中,選取 [轉換數據] 以開始轉換 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 也支援指定分隔符,以及如何處理數據類型偵測。
可用的分隔符包括冒號、逗號、等號、分號、空格、製表元、自定義分隔符(可以是任何字串),以及固定寬度(以某些標準字元數分割文字)。
最後一個下拉式清單可讓您選取要如何處理數據類型偵測。 它可以根據前 200 個數據列、整個數據集來完成,或者您可以選擇不進行自動數據類型偵測,而是讓所有數據行預設為 「文字」。 警告:如果您在整個數據集上執行此動作,可能會導致編輯器中數據的初始載入速度變慢。
由於推斷可能不正確,因此在載入之前,值得仔細檢查設定。
結構化文字
當 Power Query 可以偵測文本文件的結構時,它會將文字檔視為分隔符分隔值檔案,並在開啟 CSV 時提供相同的選項,這基本上只是擴展名為指出分隔符類型的檔案。
例如,如果您將下列範例儲存為文本檔,則會將它讀取為具有製表符分隔符,而不是非結構化文字。
Column 1 Column 2 Column 3
This is a string. 1 ABC123
This is also a string. 2 DEF456
這可用於任何類型的其他分隔符型檔案。
編輯來源
編輯來源步驟時,您會看到與一開始載入時略有不同的對話框。 根據您目前將檔案視為 (也就是文字或 csv) 的內容,您將會看到包含各種下拉式清單的畫面。
[ 換行符 ] 下拉式清單可讓您選取是否要套用引號內的換行符。
例如,如果您編輯上述提供的「結構化」範例,您可以新增換行符。
Column 1 Column 2 Column 3
This is a string. 1 "ABC
123"
This is also a string. 2 "DEF456"
如果 換行符 設定為 [忽略引號換行符],則會載入,就好像沒有換行符(加上額外的空格)。
如果 換行符 設定為 [套用所有換行符],則會載入額外的數據列,而換行符之後的內容是該數據列中唯一的內容(確切輸出可能取決於檔案內容的結構)。
[ 開啟檔案為 ] 下拉式清單可讓您編輯要載入檔案的內容,這對於疑難解答很重要。 對於技術上不是 CSV 的結構化檔案(例如儲存為文字檔的索引標籤分隔值檔案),您仍應將 [開啟檔案] 設定為 CSV。 此設定也會決定對話框其餘部分可用的下拉式清單。
文字/CSV 範例
Power Query 中的文字/CSV 範例 是 Power BI Desktop 和 Power Query Online 中正式推出的功能。 當您使用 Text/CSV 連接器時,您會看到導覽 器左下角的 [使用範例 擷取資料表] 選項。
當您選取該按鈕時,將會進入 [使用範例 擷取數據表] 頁面。 在此頁面上,您會指定您想要從 Text/CSV 檔案擷取之數據的範例輸出值。 輸入數據行的第一個儲存格之後,數據行中的其他儲存格就會填入。若要正確擷取數據,您可能需要在數據行中輸入一個以上的數據格。 如果數據行中的某些儲存格不正確,您可以修正第一個不正確的儲存格,並再次擷取數據。 檢查前幾個數據格中的數據,以確保已成功擷取數據。
注意
建議您依數據行順序輸入範例。 成功填寫數據行之後,請建立新的數據行,並開始在新數據行中輸入範例。
建構該數據表之後,您可以選取以載入或轉換數據。 請注意,產生的查詢如何包含針對數據擷取所推斷之所有步驟的詳細明細。 這些步驟只是您可以視需要自定義的一般查詢步驟。
疑難排解
從 Web 載入檔案
如果您要從 Web 要求文字/csv 檔案並提升標頭,而且您正在擷取足夠的檔案,而您需要擔心潛在的節流,您應該考慮使用 Binary.Buffer()
包裝您的Web.Contents
呼叫。 在此情況下,在升級標頭之前緩衝處理檔案會導致檔案只要求一次。
使用大型 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.Buffer(建議)或 Table.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")))