我想导入包含动态列的excel文件(列将文件更改为文件)
情况是
1.在第一行中它有表名和日期
2.在第二行中它包含列名称
3.从第三行开始,它包含需要导入的数据
4.此列(第二行标题)将根据表格而变化
请参阅示例excel格式。
----------
Table Name Exported Date: 09_01_2012
----------
Col1 Col2 Col3 Col4 Col5 Col6
----------
2 3 4 0 8/27/2012 13:04 0
4 3 4as 0 8/27/2012 13:04 0
8 3 aas 0 8/27/2012 13:04 3
----------
我想根据行号专门获取。意味着我想分割标题行和数据行。并根据列名(第二行)将数据行保存到数据库中。
答案 0 :(得分:0)
我有同样的问题,我已经部分解决了。列的顺序对于此工作很重要 如果第一行是标题,则可以作为SQL轻松导入列,并且可以按任何顺序导入:
SELECT Col1 AS [DBCol1],
Col2 AS [DBCol2],
Col3 AS [DBCol3],
Col4 AS [DBCol4],
Col5 AS [DBCol5],
Col6 AS [DBCol6]
FROM SheetName$
如果第一行不是标题,则列的顺序很重要。它可以从SQL导入为:
SELECT F1 AS [DBCol1],
F2 AS [DBCol2],
F3 AS [DBCol3],
F4 AS [DBCol4],
F5 AS [DBCol5],
F6 AS [DBCol6]
FROM SheetName$
WHERE F2 IS NOT NULL AND F3 IS NOT NULL AND F1 <> 'Col1'
请注意列名称的不同之处。我遇到的问题是第二个导入没有错误。
第一个导入是使用第一行作为标题,第二行不是。对于第二个工作重要的是,您已知空列,并且标题的第一列是固定名称。您可以尝试使用文件命名约定来更改数据所指向的表。
编辑:在Importing from Excel - Header is not on row 1
SELECT F1 AS [DBCol1],
F2 AS [DBCol2],
F3 AS [DBCol3],
F4 AS [DBCol4],
F5 AS [DBCol5],
F6 AS [DBCol6]
FROM [SheetName$A3:G65536]
编辑:我终于找到了我需要的答案
首先 - 我的整个问题都发生了,因为电子表格的第一行不是标题
我遇到的问题与第一列必须要求只是文本。没有混合数据类型。第一列中的任何数据必须通过预先等待撇号(')到任何数字单元来强制为文本。如果标题行是第一行并且选中了“第一行是标题”复选框,则不需要这样做。解决方案的许多其他部分也是必需的。 “WHERE”子句是必要的,但数组选择(A3:G65536)不是。