他の人がこれを行う必要がある場合に備えて、OLE DBとACEドライバを使用してExcelの一時ファイルに書き込み、SQLに送信するという妥協案を解決しました。 Excelファイルの操作は次のとおりです。
PS:私が大手クライアントのコードを書いているような場合は、システムにセキュリティホールを導入する可能性のあるランダムで書かれたライブラリを避ける傾向があります。このコードはMSライブラリを使用しており、他の外部ソースは使用していません。
string connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;c:\\someFile.xlsx";Extended Properties=\"Excel 12.0 Xml;HDR=NO;IMEX=1\"";
using (OleDbConnection conn = new OleDbConnection(connectionString))
{
conn.Open();
OleDbCommand cmd = new OleDbCommand();
cmd.Connection = conn;
cmd.CommandText = "CREATE TABLE [table1] (id INT, name VARCHAR, datecol DATE);";
cmd.ExecuteNonQuery();
cmd.CommandText = "INSERT INTO [table1](id,name,datecol) VALUES(1,'AAAA','2014-01-01');";
cmd.ExecuteNonQuery();
cmd.CommandText = "INSERT INTO [table1](id,name,datecol) VALUES(2, 'BBBB','2014-01-03');";
cmd.ExecuteNonQuery();
cmd.CommandText = "INSERT INTO [table1](id,name,datecol) VALUES(3, 'CCCC','2014-01-03');";
cmd.ExecuteNonQuery();
cmd.CommandText = "UPDATE [table1] SET name = 'DDDD' WHERE id = 3;";
cmd.ExecuteNonQuery();
conn.Close();
}
はい、バイナリをExcelに保存しておくと簡単です。上記のように、私は "SELECT name、surname FROM users"のようなSELECT文をExcelバイナリに保存してC#appに戻したいと思っています。 HTTPMessagingを使用して、バイナリ、MIMEタイプ、ファイル名をブラウザに送信します。最初から作成する必要のあるExcelバイナリが欠けています。 –
それほど単純ではありません。 Google for NPOIライブラリには、Excelファイルを作成するためのライブラリがあります。そして、私は正しく覚えている、あなたはファイルシステムに作成エクセルを保存する必要があります... – Nino