bartender外部表不是预期格式_批量合并Excel数据时“外部表不是预期格式”或“文件包含损坏数据”的两种情况...

在使用Power Query合并Excel数据时可能会遇到'外部表不是预期格式'或'文件包含损坏数据'的错误,这通常由于从专业平台导出的xls文件或文件夹中的临时缓存文件导致。对于xls文件,可以使用Excel打开并另存为xlsx格式解决;对于临时缓存文件,可以通过筛选排除文件名以'~$'开头的文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

   很多朋友在用Power Query合并(汇总)Excel数据时,碰到过“DataFormat.Error: 外部表不是预期格式”或“ DataForma t. Error:文件包含损坏的数据 ”的错误提示:

885a1bdeed111ed24ee6e526d64599dd.png

e834a070bffb0c7e812095f5235f3bef.png

      将数据从PQ加载到Excel时可能也会出现类似下面的提示:

3c82cae9dee1ce0d84cc93d1c4188003.png

         针对这两种错误,主要是由以下两种情况导致的:

1、要合并汇总的数据是从某些专业平台或系统导出的xls(2003版以前)格式Excel文件;

2、文件夹中包含了一些临时的缓存文件。

- 情况1:xls文件 -

       首先要说明的是,并不是Power Query不支持xls格式Excel文件的读取,只是某些专业平台或系统导出的xls文件读取会出错而已

62e3db2220934cabcd5370c81976d085.png

       当你用PQ接入某个xls文件出现错误时,基本都是这种原因。解决的办法也很简单,用Excel打开该文件,然后另存为xlsx格式即可。

       当然,这种情况下,往往需要导入的文件都是一大批的,一个个打开另存可能比较麻烦,为了方便,可以收藏一段VBA代码用于自动化处理:

 Sub save_xls_to_xlsx()    '作者:大海    '日期:2019-11-9    '公众号:Excel到PowerBI        Dim folder As FileDialog    Dim f, fdi As FileDialogSelectedItems    Dim i As Integer    Dim file_count As Integer    Dim xls_file As String    Dim xlsx_file As String    Dim wb As Workbook        Set folder = Application.FileDialog(msoFileDialogFolderPicker)    folder.Show        Set fdi = folder.SelectedItems        If fdi.Count = 0 Then        MsgBox "未选择任何文件夹。"        Exit Sub    End If       For Each f In fdi        xls_file = Dir(f & "\*.xls")        file_count = 0        Do            If Right(xls_file, 4) = ".xls" Then                Set wb = Workbooks.Open(f & "\" & xls_file)                Application.ScreenUpdating = False                xlsx_file = f & "\" & xls_file & "x"                ActiveWorkbook.SaveAs Filename:=xlsx_file, FileFormat:=xlWorkbookDefault, CreateBackup:=False                wb.Close savechanges:=False                Kill f & "\" & xls_file '若不想删除原文件,可注释掉本行                file_count = file_count + 1                Application.ScreenUpdating = True            End If            xls_file = Dir        Loop Until xls_file = ""    Next    MsgBox "该文件夹下的xls文件(共" & CStr(file_count) & "个)已全部转换为xlsx文件。谢谢您对大海的支持!"    End Sub

- 情况2:临时缓存文件 -

       这种情况处理比较简单,在从文件夹导入数据时,就能看到(文件名开头为“~$”),这种文件产生的原因有很多,比如文件正在打开的过程中,或者出现操作错误没有正常退出等等:

b144225b1354400d56fffef9c8f1eae0.png

      这些文件通常都是不需要的,所以,PQ从文件夹读入文件后,即可直接通过筛选(文件名开头不是“~$"的工作簿)的方式去掉:

72459a6cdc727717f54134f9842db622.png c0b489b6d98af2d4a2991f8d32f4c20d.png

Power新书榜第1 | 最适合入门打基础

当当京东超低折扣进行中

最通俗易懂Power系列视频 -

购书领60元视频券 or 直购视频送签名书

4dc0506e9dde14a244239df8e419f82a.png

点“阅读原文”看视频

11·11大促狂欢

腾讯课堂领券直减50元

本文配套材料下载

(按文章发布日期确定对应文件)

https://share.weiyun.com/5YKFr4Z

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值