總結
| 項目 | 說明 |
|---|---|
| 發行狀態 | 一般可用性 |
| 產品 | 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 檔案:
選取 [取得數據] 中的 [文字/CSV] 選項。 此動作會啟動本機檔案瀏覽器,您可以在其中選取文字檔。
選取 [開啟] 以開啟檔案。
從 [導覽器] 中,您可以選取 [ 轉換數據] 來轉換 Power Query 編輯器中的數據,或選取 [ 載入] 來載入數據。
從 Power Query Online 連線到文字/CSV 檔案
若要載入本機文字或 CSV 檔案:
從 [ 數據源] 頁面中,選取 [文字/CSV]。
在 [連線設定] 中,上傳檔案或輸入您想要之本機文字或 CSV 檔案的檔案路徑。
從 數據閘道選取內部部署數據閘道。
輸入使用者名稱及密碼。
選取 下一步。
從 [導覽器] 中,選取 [轉換數據 ] 以開始在Power Query 編輯器中轉換數據。
從 Web 載入
若要從 Web 載入文字或 CSV 檔案,請選取 Web 連接器、輸入檔案的網址,然後遵循任何認證提示。
文字/CSV 分隔符
Power Query 將 CSV 視為結構化檔案,並以逗號作為分隔符——這是文字檔的特殊情況。 如果您選擇文字檔,Power Query 會自動嘗試判斷是否有分隔符分隔值,以及該分隔符是什麼。 如果它可以推斷分隔符,它會自動將它視為結構化數據源。
非結構化文字
如果你的文字檔沒有結構,你會得到一個單一資料欄,而來源文字中的每一行都會成為一個新資料列。 作為非結構化文字的範例,考慮一個記事本檔案,內容如下:
Hello world.
This is sample data.
當您載入它時,您會看到一個導航畫面,該畫面會將每一行呈現在各自的資料列中。
你只能在這個對話框中設定一個選項,就是檔案 來源 下拉選單。 此下拉式清單可讓您選取用來產生檔案 的字元集 。 目前,字元集不會被推斷,而 UTF-8 只有在以 UTF-8 BOM 開頭時才會被推斷。
CSV
您可以 在這裡找到範例 CSV 檔案。
除了檔案來源之外,CSV 也支援指定分隔符,以及如何處理數據類型偵測。
分隔符包括冒號、逗號、等號、分號、空格、制表符、自訂分隔符(可為任意字串)以及固定寬度(以標準字元數分割文字)。
最後一個下拉選單讓你選擇如何處理資料型別偵測。 你可以根據前 200 行或整個資料集來判斷。 你也可以選擇關閉自動資料類型偵測,讓所有欄位預設為「Text」。 警告:如果你選擇整個資料集,可能會導致編輯器中資料的初始載入變慢。
因為推論可能錯誤,載入前請再次確認設定。
結構化文本
當 Power Query 偵測到你的文字檔有結構時,它會將該文字檔視為一個分隔符分隔值的檔案。 它給你開啟 CSV 時可用的選項。 CSV 本質上是一個帶有分隔符類型副檔名的檔案。
例如,如果你將以下範例儲存為文字檔,Power Query 會將其解讀為有制表分隔符,而非非結構化文字。
Column 1 Column 2 Column 3
This is a string. 1 ABC123
This is also a string. 2 DEF456
你可以用這個結構來處理任何其他基於分隔符的檔案。
編輯來源
當你編輯來源步驟(在 Power Query Desktop 的「套用步驟」面板)時,你會看到一個和最初載入檔案時略有不同的對話框。 根據你目前如何處理檔案(當作文字或 CSV),你會看到一個包含各種下拉選單的畫面。
使用 「換行」 下拉式選單,選取是否要套用引號內的換行。
例如,如果您編輯先前提供的「結構化」範例,您可以新增換行符。
Column 1 Column 2 Column 3
This is a string. 1 "ABC
123"
This is also a string. 2 "DEF456"
如果你把 換行 設為 忽略引號中的換行,範例會載入,且字串的後半段會顯示在同一欄中前半段的下方。
如果你把 換行 設成 套用所有換行,範例會多載入一列,換行之後的內容就是該列唯一的內容(具體輸出可能依檔案內容結構而定)。
使用 開啟檔案為 下拉式選單,設定要將檔案載入為何種格式。 這個設定對故障排除很重要。 對於技術上不是 CSV 的結構化檔案(例如分頁數值檔案儲存為文字檔),請將 Open 檔案設定為 CSV。 此設定也會決定對話框其餘部分可用的下拉式清單。
文字/CSV 範例
Power Query 中的文字/CSV 範例是 Power BI Desktop 和 Power Query Online 中正式推出的功能。 當您使用 Text/CSV 連接器時,您會看到導覽器左下角的 [ 使用範例擷取資料表 ] 選項。
當您選取該按鈕時,會進入 [ 使用範例擷取數據表 ] 頁面。 在此頁面上,您會指定您想要從 Text/CSV 檔案擷取之數據的範例輸出值。 輸入數據行的第一個儲存格之後,數據行中的其他儲存格就會填入。若要正確擷取數據,您可能需要在數據行中輸入一個以上的數據格。 如果數據行中的某些儲存格不正確,您可以修正第一個不正確的儲存格,並再次擷取數據。 若要確保成功擷取數據,請檢查前幾個數據格中的數據。
備註
請依欄位順序輸入範例。 成功填寫數據行之後,請建立新的數據行,並開始在新數據行中輸入範例。
建構該數據表之後,您可以選取以載入或轉換數據。 請注意,產生的查詢如何包含針對數據擷取所推斷之所有步驟的詳細明細。 這些步驟是您可以視需要自定義的一般查詢步驟。
故障排除
從網頁載入檔案
如果您從 Web 要求 text/csv 檔案,也提升標頭,且擷取的檔案數量多到需要考慮可能發生的節流限制,請考慮將對 Web.Contents 的呼叫包裝在 Binary.Buffer() 中。 在這種情況下,先緩衝檔案再升標頭,檔案只會被請求一次。
使用大型 CSV 檔案
如果您在 Power Query Online 編輯器中處理大型 CSV 檔案,您可能會收到內部錯誤。 先用較小的 CSV 檔案,在編輯器裡套用步驟,完成後再把路徑改成較大的 CSV 檔案。 此方法可讓您更有效率地工作,並減少在線上編輯器中遇到超時的機會。 你不會預期在刷新時間會遇到這個錯誤,因為服務允許更長的逾時時間。
非結構化文字被解讀為結構化
在極少數情況下,當段落中出現相似逗號時,Power Query 會將文件解讀為 CSV。 如果發生此問題,請在 Power Query 編輯器中編輯 「來源」 步驟,並在 「開啟檔案格式」 下拉式選單中選取 「文字」,而非 「CSV」。
Power BI Desktop 中的欄
當你匯入 CSV 檔案時,Power BI Desktop 會在 Power Query 編輯器中產生欄位=x 步驟,x 是初始匯入時 CSV 檔案的欄位數。 如果你之後新增更多欄位並設定資料來源重新整理,刷新操作不會包含超過初始 x 欄數以外的欄位。
錯誤:連線已被主機關閉
在從網頁來源載入文字/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")))