【发布时间】:2009-07-16 14:53:31
【问题描述】:
我正在使用 OleDb 从 Excel 电子表格中选择数据。每个电子表格可以包含许多小表格,可能还包含标题和标签等家具。所以它可能看起来像这样,我们有两个表格和一些标题;
A B C D 1. . . . 2. . . . 3 表 1。 . . 4 标头 1 标头 2。 . 5 小时休伊。 . 6天杜威。 . 7 l 路易斯。 . 8 年代史克鲁奇。 . 9. . . . 10. . . . 11. . . . 12. . . . 13.表 2。 . 14.头1 头2 头3 15 . 1 富 x 16. 2 巴 17. 3 巴兹 18. . . . 19. . . .在上一步中,用户选择了他们感兴趣的表的标题;在这种情况下,查看表 2,他们将选择范围 B14:D14。
这些设置已保存,然后我需要查询该表。随着电子表格数据的更新,它可能会一遍又一遍地发生;可以随时添加更多行,但标题始终是固定的。有一个标记(空白行)标记数据结束
要选择表中的数据,我正在编写这样的查询;
SELECT * FROM [Sheet1$B14:D65535]
选择表2中的数据,然后手动检查sentinel行,但这似乎并不令人满意。 Excel 2003 只能读取 65,535 行(uint16),但 excel 2007 可以读取更多(uint32),所以我必须编写代码,根据文件的扩展名(.xls vs . xls?)。
有谁知道写查询的方法;
- '选择 B14 下方和右侧的所有内容'?
- '选择列 B->D 中的所有内容'
- 'select B12:D*' 其中 * 表示“尽你所能”
【问题讨论】:
-
一个 Excel 2003 工作表可以包含 65536 行,内部编号为 0 到 65535,外部编号为 1 到 65536。