qq_20015981 2024-05-07 21:35 采纳率: 0%
浏览 2

powerquery从文件夹导入记事本格式问题

powerquery批量从文件夹中导入记事本数据怎么修改数据源格式
因为记事本格式为65001,在导入PQ时会默认为gb2312出错,当导入单个文本文件时可以通过修改数据源格式进行调整,
如果批量从文件夹导入时找不到修改源格式的操作了,求指导

  • 写回答

4条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-05-07 21:35
    关注

    引自免费微信小程序:皆我百晓生

    在Power Query(也称为M语言)中,你可以通过编写自定义的查询步骤来解决这个问题。你需要创建一个新的查询,然后在其中处理每个单独的文本文件,并在读取时指定正确的编码格式。这里是一个详细的步骤指南:

    1. 打开Power BI Desktop,点击左上角的"Home",然后选择"New Source" -> "From Folder..."。

    2. 选择包含记事本文件的文件夹,然后点击"Load"。这将创建一个名为"Folder contents"的新表。

    3. 在左侧的"Navigator"面板中,双击"Folder contents"表以打开它。

    4. 在顶部菜单栏,点击"Home" -> "Close & Apply"关闭并应用当前工作簿的数据加载。

    5. 现在,右键点击"Folder contents"表,选择"Edit Queries"进入Power Query编辑器。

    6. 在Power Query编辑器中,你会看到一个名为"Table"的步骤。删除这个步骤(选中后按Delete键)。

    7. 再次在"Home"菜单栏中点击"New Source" -> "From Table/Range"。

    8. 在弹出的窗口中,你应该能看到"Folder contents"表。选中它,然后点击"OK"。

    9. 这时,你应该看到一个新的名为"#"的步骤。在这个步骤下面添加一个新的空白行。

    10. 在新行输入以下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
    
    1. 按Ctrl + Shift + Enter运行这段代码。完成后,点击"Home" -> "Close & Apply"关闭并应用更改。

    2. 此时你应该看到一个新的表,其中包含了所有文本文件的内容,且已经正确识别为UTF-8编码。

    这样,你就创建了一个可以处理整个文件夹中记事本文件的查询,同时确保了它们的正确编码。如果你想要进一步操作这些数据,可以在Power Query编辑器中继续添加步骤。例如,你可以拆分、过滤、转换数据等,然后再将其连接回主工作簿。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 5月7日

悬赏问题

  • ¥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局部变量对蓝图不可见