0

私の問題は次のとおりです。

Excel ファイルの DATA は次のようになります。

id クラス 単体テスト 1 単体テスト 2
                      eng math sci eng math sci
1VA 20 15 22 16 18AB
2 vb 14 ab 20 19 17 20

データベース内のテーブルは次のとおりです。

id クラス サブジェクト マーク test_category
1 va eng 20 UT-1
1 va eng 16 UT-2
1 va 数学 15 UT-1
1 va 数学 18 UT-2
1 va sci 22 UT-1
1 va sci null UT-2
2 vb eng 14 UT-1
2 vb eng 19 UT-2
2 VB 数学ヌル UT-1
2 vb 数学 17 UT-2
2 vb sci 20 UT-1
2 vb sci 20 UT-2

データベース内の列は、示されているものと同じでなければなりません。しかし、私が必要としているのは、Excel ファイルに示されているようにレコード全体を挿入することです。Excelファイルにはabセルがあります。ここでデータベースは null 値を挿入します。

ASP プロジェクトの ON ボタン クリック イベントでは、Excel ファイルに存在するすべてのレコードをデータベースに挿入する必要があります。

これを aspx.cs (これを実現するための C# コード) で実行したいと思います。

4

1 に答える 1

0

次の方法を使用して、別の Excel ワークシートの Excel データをデータベース形式に変換できます。

(前提: データはシート 1、列 A から H にあり、行 1 は ID、クラス、単体テスト、行 2 eng、math、...、行 3+ データ:

新しいシートで、次の式を使用します (行 2 から開始)。

  • 列 A (「一時列」):=IF(ISTEXT(A1),1,IF(A1=6,1,A1+1))
  • 列 B (「id」):=IF(ISTEXT(B1),1,IF(A1=1,B1+1,B1))
  • Col C (「クラス」)=INDEX(Sheet1!$B:B$,B2+1)
  • Col D (「件名」)=INDEX(Sheet1!$C$2:$H$2,1,A2)
  • Col F (「マーク」)=INDEX(Sheet1!$C:H$,B2+1,A2)
  • 列 G (「テスト カテゴリ」)=IF(A2<4,"UT-1","UT-2")

これで、元のデータ行数の 6 倍の行 2 をコピーするだけで済みます。- 次に、このテーブルをインポートします。

于 2013-01-25T12:27:49.483 に答える