Column 1 Column 2 Column 3
This is a string. 1 "ABC
This is also a string. 2 "DEF456"
如果将 换行符 设置为 “忽略带引号的换行符”,则会加载,就像没有换行符 () 额外空格一样。
如果将 换行符 设置为 “应用所有换行符”,它将加载一个额外的行,换行符后的内容是该行中唯一的内容 (确切输出可能取决于文件内容) 的结构。
使用 “以文件打开 ”下拉列表可编辑要加载文件的内容,这一点对于故障排除非常重要。 对于在技术上不是 CSV (的结构化文件,例如保存为文本文件) 的制表符分隔值文件,仍应将 “打开文件 ”设置为 CSV。 此设置还确定哪些下拉列表在对话框的其余部分可用。
按示例显示的文本/CSV
Power Query中的文本/CSV 示例是 Power BI Desktop 和 Power Query Online 中的正式版功能。 使用文本/CSV 连接器时,将在导航器的左下角看到 “使用示例提取表 ”选项。
选择该按钮时,将进入“ 使用示例提取表 ”页。 在此页上,指定要从文本/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 会在 Power Query 编辑器中生成一个 columns=x(其中,x 是 CSV 文件中的列数)作为一个步骤 。 如果随后添加更多列并且数据源设置为“刷新”,则不会刷新超出初始 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")))