web-dev-qa-db-ja.com

XLSXファイル拡張子から一括挿入する方法

誰かが.xlsxファイルから一括挿入する方法をアドバイスできますか?

私はすでに以下のクエリを試しました:

BULK INSERT #EVB FROM 'C:\Users\summer\Desktop\Sample\premise.xlsx' 
WITH (FIELDTERMINATOR = '\t', ROWTERMINATOR = '\n', FIRSTROW = 2);

SELECT * FROM #EVB

私もFIELDTERMINATOR like "**\t**", "**,**", "**;**", "**|**"を試しましたが、これも機能しません。

残念ながら、エラーメッセージはありません。

5
SƲmmēr Aƥ

xlsxファイルをタブ区切りのテキストファイルとして保存して、

BULK INSERT TableName
        FROM 'C:\SomeDirectory\my table.txt'
            WITH
    (
                FIELDTERMINATOR = '\t',
                ROWTERMINATOR = '\n'
    )
GO
24

OPENROWSETを使用する必要があります

この質問を確認してください: import-Excel-spreadsheet-columns-into-sql-server-database

3
Turque

ドキュメントへのリンクサーバーを作成する

http://www.Excel-sql-server.com/Excel-import-to-sql-server-using-linked-servers.htm

次に、通常のINSERTまたはSELECT INTOを使用します。凝ったものにしたい場合は、ADO.NETのSqlBulkCopyを使用できます。これは、DataReaderを取得できるほぼすべてのデータソースを取得し、挿入が非常に高速ですが、データの読み取りは高速ではありません。

時間をかけてExcelスプレッドシートをテキスト区切りファイルまたはその他の bcpでサポートされている形式 に変換してから、BCPを使用することもできます。

1
MatthewMartin

これは、SQL Serverインポートおよびエクスポートウィザードを使用して実行できます。ただし、SSISに精通していて、SQL Serverのインポートとエクスポートを実行したくない場合エクスポートウィザードで、ExcelのソースとSQL Serverの宛先をデータフローで使用するSSISパッケージを作成します。

0
madhukar mohan