Excel从第3行导入而不进行格式化

时间:2012-09-01 10:52:57

标签: asp.net excel import asp.net-4.0 import-from-excel

我想导入包含动态列的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
----------

我想根据行号专门获取。意味着我想分割标题行和数据行。并根据列名(第二行)将数据行保存到数据库中。

1 个答案:

答案 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)不是。