如何用Excel内置工具导出Power Query数据至CSV并绕过百万行限制
解决Power Query导出CSV及突破Excel行数限制的方法
一、用Excel内置工具导出Power Query数据为CSV
- 打开Power Query编辑器,完成数据清洗或转换后,点击顶部主页选项卡 → 导出 → 导出到CSV
- 在弹出的保存对话框中设置路径和文件名,直接完成导出(此方法无需将数据加载到Excel工作表)
- 若需通过现有连接导出:回到Excel界面,右键右侧查询和连接面板中的目标查询 → 导出到CSV,按提示完成保存
二、绕过Excel100万行限制导出大量数据
由于Excel单工作表最多支持1,048,576行,直接加载到表再导出会受限制,以下两种内置工具方案可解决:
方案1:直接从Power Query引擎导出(无行数限制)
- 完成ETL数据处理后,在Power Query编辑器中直接使用主页→导出→导出到CSV功能,数据不会经过Excel工作表,完全绕过行数限制,一次性导出所有数据
方案2:批量拆分导出为多份CSV
如果需要将大文件拆分为多个小CSV(比如每100万行一个),可在Power Query中添加拆分步骤:
- 给数据添加索引列:点击添加列选项卡 → 索引列(从0或1开始均可)
- 添加分组标识列:新建自定义列,公式为
=Number.IntegerDivide([Index], 1000000),此列会给每100万行数据分配同一个分组编号 - 按分组标识列分组:点击转换选项卡 → 分组依据,分组列选择刚创建的标识列,操作选所有行,新列名设为
分组数据 - 批量导出:
- 新建空白查询,粘贴以下Power Query M代码作为导出函数:
(data as table, savePath as text) as null => let 转CSV = Table.ToCsv(data, [Delimiter=",", QuoteStyle=QuoteStyle.Csv]), 保存文件 = File.WriteAllText(savePath, 转CSV, TextEncoding.Utf8) in 保存文件 - 回到主查询,添加自定义列,调用该函数,示例公式:
=导出函数([分组数据], "C:\导出文件夹\数据_第" & Text.From([分组标识列]) & "份.csv") - 点击关闭并上载,Power Query会自动按分组导出多个CSV文件
- 新建空白查询,粘贴以下Power Query M代码作为导出函数:
内容的提问来源于stack exchange,提问作者Isaacnfairplay
相关产品推荐
相关产品推荐

