powerquery批量从文件夹中导入记事本数据怎么修改数据源格式
因为记事本格式为65001,在导入PQ时会默认为gb2312出错,当导入单个文本文件时可以通过修改数据源格式进行调整,
如果批量从文件夹导入时找不到修改源格式的操作了,求指导
powerquery从文件夹导入记事本格式问题
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
4条回答 默认 最新
关注 引自免费微信小程序:皆我百晓生
在Power Query(也称为M语言)中,你可以通过编写自定义的查询步骤来解决这个问题。你需要创建一个新的查询,然后在其中处理每个单独的文本文件,并在读取时指定正确的编码格式。这里是一个详细的步骤指南:
-
打开Power BI Desktop,点击左上角的"Home",然后选择"New Source" -> "From Folder..."。
-
选择包含记事本文件的文件夹,然后点击"Load"。这将创建一个名为"Folder contents"的新表。
-
在左侧的"Navigator"面板中,双击"Folder contents"表以打开它。
-
在顶部菜单栏,点击"Home" -> "Close & Apply"关闭并应用当前工作簿的数据加载。
-
现在,右键点击"Folder contents"表,选择"Edit Queries"进入Power Query编辑器。
-
在Power Query编辑器中,你会看到一个名为"Table"的步骤。删除这个步骤(选中后按Delete键)。
-
再次在"Home"菜单栏中点击"New Source" -> "From Table/Range"。
-
在弹出的窗口中,你应该能看到"Folder contents"表。选中它,然后点击"OK"。
-
这时,你应该看到一个新的名为"#"的步骤。在这个步骤下面添加一个新的空白行。
-
在新行输入以下M代码,用于遍历文件夹中的所有文本文件,并正确地读取它们的编码:
let // 获取文件夹内容 FolderPath = (Folder Path as text) => let folder = Folder.Files(Folder Path), filenames = folder[Name], paths = folder[FullFilespec] in paths, // 遍历文件路径并读取内容 GetTextContent = (filePath as text) => let // 使用正确的编码读取文本 options = [TextEncoding = UnicodeTextEncoding(65001)], content = Text.FromBinary(File.Contents(filePath), options) in content, // 应用到所有文件 AllContents = FolderPath(Table.Column(#"Folder Contents", "Column1")) |> List.Map(GetTextContent), // 创建新的表 Result = Table.FromList(AllContents, Splitter.SplitByNothing(), null, null, ExtraValues.Error) in Result
-
按Ctrl + Shift + Enter运行这段代码。完成后,点击"Home" -> "Close & Apply"关闭并应用更改。
-
此时你应该看到一个新的表,其中包含了所有文本文件的内容,且已经正确识别为UTF-8编码。
这样,你就创建了一个可以处理整个文件夹中记事本文件的查询,同时确保了它们的正确编码。如果你想要进一步操作这些数据,可以在Power Query编辑器中继续添加步骤。例如,你可以拆分、过滤、转换数据等,然后再将其连接回主工作簿。
解决 无用评论 打赏 举报 编辑记录-
悬赏问题
- ¥15 35114 SVAC视频验签的问题
- ¥15 impedancepy
- ¥15 在虚拟机环境下完成以下,要求截图!
- ¥15 求往届大挑得奖作品(ppt…)
- ¥15 如何在vue.config.js中读取到public文件夹下window.APP_CONFIG.API_BASE_URL的值
- ¥50 浦育平台scratch图形化编程
- ¥20 求这个的原理图 只要原理图
- ¥15 vue2项目中,如何配置环境,可以在打完包之后修改请求的服务器地址
- ¥20 微信的店铺小程序如何修改背景图
- ¥15 UE5.1局部变量对蓝图不可见