0

動的な列を持つExcelファイルをインポートしたい(列はファイルごとに異なります)。
状況は
1 です。最初の行にはテーブル名と日付があります。
2. 2 行目には列名が含まれています
。3. 3 行目からは、インポートする必要があるデータが含まれています。
4. この列 (2 行目のヘッダー) は、テーブルによって異なります。
エクセル形式のサンプルをご覧ください。

----------
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
----------

行番号に基づいて具体的に取得したい。ヘッダー行とデータ行を分割したいということです。列名(2行目)に基づいてデータ行をデータベースに保存します。

4

1 に答える 1

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'

列名の違いに注意してください。私が抱えている問題は、2番目のものをエラーなしでインポートすることです。最初のインポートは最初の行をヘッダーとして使用していますが、2 番目のインポートはそうではありません。2 番目のものが機能するために重要なことは、空の列とヘッダーの最初の列が固定名であることを知っていることです。ファイルの命名規則を使用して、データが指すテーブルを変更してみてください。
編集: Excel からのインポートで回答が見つかりました- ヘッダーが行 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) は必要ありませんでした。

于 2013-04-17T18:00:34.787 に答える