3

ユーザーが Excel ファイルを選択できるようにしてから、すべてのワークシートを SQL テーブルにアップロードできるようにする必要があります。これを行う方法がわかりません。各シートのフォーマットはまったく同じです。また、ワークシートの形式は SQL テーブルの形式と一致します。

4

1 に答える 1

2

Excel ファイル用の ODBC プロバイダーを使用できます。Excel ファイルを SQL Server テーブルにインポートするために JavaScript で記述されたコードを次に示します。各ワークシートは 1 つのテーブルとして扱われます。ODBC ドライバーは最初の値を読み取って各列のデータ型を推定するため、データ型にはいくつかの問題があります。そのため、列のデータの最初の行に数値がある場合、列全体が数値として読み取られ、すべての「非数値」が読み取られます。 value は NULL として読み取られます。

var objCat = new ActiveXObject("ADODB.Connection"); 
var objRSExcel = Server.CreateObject("ADODB.Recordset");
objRSExcel.CursorLocation = 3;
var file =  "imported_file.xls";
var TableName = "[Sheet1$]"

// Database Creation
objCat.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + file + ";Extended Properties=Excel 8.0;";                    
objCat.Open();
objRSExcel.Open("SELECT * FROM " + TableName, objCat);

var rsInsert = Server.CreateObject("ADODB.Recordset");
rsInsert.Open("SELECT * FROM [TARGET_TABLE]", cn, 1, 3);

while (!objRSExcel.EOF) {
    rsInsert.AddNew();
    for (var j=0;j<objRSExcel.Fields.Count; j++) {
        rsInsert.Fields(j).Value = objRSExcel.Fields(j).Value;
    }
    rsInsert.Update();
    objRSExcel.MoveNext();
}
objRSExcel.Close();
rsInsert.Close();
于 2009-09-07T02:42:26.947 に答える