【问题标题】:Excel Import from 3rd Row without formattingExcel 从第 3 行导入,无需格式化
【发布时间】:2012-09-01 10:52:57
【问题描述】:

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

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

【问题讨论】:

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


    【解决方案1】:

    我有同样的问题,我已经部分解决了。列的顺序对此很重要。
    如果第一行是标题,则可以轻松地将列作为 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) 不是。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多