为什么在使用 Excel 的 "Data Connection" 导入时,某些 table header 数据丢失
Why is some table header data missing when I import with Excel's "Data Connection"
我有一个工作簿需要连接到另外两个工作簿以提取数据并对其进行汇总。
我已经建立了数据连接,但是在其中一个 sheet 中,当导入数据时,某些 table 标题丢失(标题所在的单元格是空的,尽管数据的布局和格式似乎完好无损)。
这两个工作簿位于共享网络文件夹中,并由其他团队远程更新。因为工作簿是定期更新的,我不能运行这个宏就在工作簿
sheet 的目的是从两个来源收集数据,并在 per-agent 的基础上进行汇总,包括奖金资格、出勤率、生产力等项目,然后能够将个人 sheet 打印为 PDF 并发送给代理人。
我的第一个数据连接(按业务线细分)最初缺少原始工作簿中的第 2 列 header。源 table 是一个枢轴 table,带有一个可以隐藏某些列的切片器。无论我如何操作源 sheet,只有第 2 列缺少数据。我通过删除数据连接并使用 "First Row Contains Column Headers" un-checked
创建一个新连接来更正此问题
我的第二个数据连接(出勤和表现),我缺少第 3、4、5 和 9-13 列(1、2、6、7、8 全部显示)的 header。
此源 table 是一个枢轴 table,但没有用于列的切片器(它们是静态的)。
我试过选中 un-checking "table headers" 框。如果我检查它,我没有列 headers,但是 un-checked 给出了上述结果。
我想知道的是:这有什么原因吗,或者我可以做些什么来改变它?由于第二个文件上的 header 是静态的,实际上我可以在没有它们的情况下进行操作,因为我知道在创建 VBA 代码时它们会是什么,但是对于 future-proofing 我想成为无需编辑代码即可即时适应任何变化。
作为新用户,我没有 post 图片的声誉,但我已经链接到此处的图片:
This is a sample of my source table:
This is what I get when I connect with "Data Connection"
我预计当我从 table 导入时,所有数据都会传输过来,但由于某种原因,我似乎只缺少 table headers。
万一其他人遇到这个问题,我想我找到了解决方案。当列具有混合数据模式时,存在 ODBC 限制。因为我的标题是文本但所有数据都是数字(双数据类型),所以查询 returns NULL 文本字段并在我的 table.
上忽略它们
IMEX 设置修复了这个问题。在扩展属性中设置 IMEX=1 允许混合数据类型。
示例:
Extended Properties="HDR=Yes;IMEX=1;"
对我来说,这并不能单独解决我的问题。当我删除我的 table、更改连接 属性,然后从现有连接创建一个新的 table 时,所有内容都按原样导入。
希望有一天其他人会发现这有用。
我有一个工作簿需要连接到另外两个工作簿以提取数据并对其进行汇总。
我已经建立了数据连接,但是在其中一个 sheet 中,当导入数据时,某些 table 标题丢失(标题所在的单元格是空的,尽管数据的布局和格式似乎完好无损)。
这两个工作簿位于共享网络文件夹中,并由其他团队远程更新。因为工作簿是定期更新的,我不能运行这个宏就在工作簿
sheet 的目的是从两个来源收集数据,并在 per-agent 的基础上进行汇总,包括奖金资格、出勤率、生产力等项目,然后能够将个人 sheet 打印为 PDF 并发送给代理人。
我的第一个数据连接(按业务线细分)最初缺少原始工作簿中的第 2 列 header。源 table 是一个枢轴 table,带有一个可以隐藏某些列的切片器。无论我如何操作源 sheet,只有第 2 列缺少数据。我通过删除数据连接并使用 "First Row Contains Column Headers" un-checked
创建一个新连接来更正此问题我的第二个数据连接(出勤和表现),我缺少第 3、4、5 和 9-13 列(1、2、6、7、8 全部显示)的 header。 此源 table 是一个枢轴 table,但没有用于列的切片器(它们是静态的)。
我试过选中 un-checking "table headers" 框。如果我检查它,我没有列 headers,但是 un-checked 给出了上述结果。
我想知道的是:这有什么原因吗,或者我可以做些什么来改变它?由于第二个文件上的 header 是静态的,实际上我可以在没有它们的情况下进行操作,因为我知道在创建 VBA 代码时它们会是什么,但是对于 future-proofing 我想成为无需编辑代码即可即时适应任何变化。
作为新用户,我没有 post 图片的声誉,但我已经链接到此处的图片:
This is a sample of my source table:
This is what I get when I connect with "Data Connection"
我预计当我从 table 导入时,所有数据都会传输过来,但由于某种原因,我似乎只缺少 table headers。
万一其他人遇到这个问题,我想我找到了解决方案。当列具有混合数据模式时,存在 ODBC 限制。因为我的标题是文本但所有数据都是数字(双数据类型),所以查询 returns NULL 文本字段并在我的 table.
上忽略它们IMEX 设置修复了这个问题。在扩展属性中设置 IMEX=1 允许混合数据类型。 示例:
Extended Properties="HDR=Yes;IMEX=1;"
对我来说,这并不能单独解决我的问题。当我删除我的 table、更改连接 属性,然后从现有连接创建一个新的 table 时,所有内容都按原样导入。
希望有一天其他人会发现这有用。