は、上記のあなたが列名として列1とヘッダ...と最初の行を持っていることを前提とExcelシート
string fileName = @"D:\test.xlsx";
string connectionString = String.Format(@"Provider=Microsoft.ACE.OLEDB.12.0;" +
"Data Source={0};Extended Properties='Excel 12.0;HDR=YES;IMEX=0'", fileName);
using(OleDbConnection cn = new OleDbConnection(connectionString))
{
cn.Open();
OleDbCommand cmd1 = new OleDbCommand("INSERT INTO [Sheet1$] " +
"([Column1],[Column2],[Column3],[Column4]) " +
"VALUES(@value1, @value2, @value3, @value4)", cn);
cmd1.Parameters.AddWithValue("@value1", "Key1");
cmd1.Parameters.AddWithValue("@value2", "Sample1");
cmd1.Parameters.AddWithValue("@value3", 1);
cmd1.Parameters.AddWithValue("@value4", 9);
cmd1.ExecuteNonQuery();
}
コードに行を追加することは容易です。 また、コードでは、Microsoft.Jet.OleDb.4.0の代わりにExcel 2007または2010のACE OleDBプロバイダを使用します。
EDIT:あなたはこの1
OleDbCommand cmd1 = new OleDbCommand("INSERT INTO [yourNamedRange] " +
"VALUES(@value1, @value2, @value3, @value4)", cn);
可哀想にSQLコマンドを変更することができます名前付き範囲を参照するには、私は、個々の列を参照する方法を見つけることができません。
何を試しましたか? MSDNには例がありますか?あなたはADO.NETとオートメーションを持っています。 ADO.NETでは、名前付き範囲をテーブルのように扱うことができます。 ADO.NETはJetプロバイダを使用します。 ADO.NETはいくつかの構造を必要としますが、それは簡単です(私の心では)Excelを必要としません。 – Paparazzi