从.Net插入简单数据到Excel文件的最简单的方法

我有一个excel文件,有~10列和1-20行。 我需要插入1-20行与各种数据元素。

我想知道是否有一种方法,我可以把一些标签的Excel文件,所以他们可以find并replace。 将某列标记为“名称”的内容。 这样的代码我可以说:

Name[0] = object.name;

我不确定这个确切的方法是否可行,但是我真的不需要任何繁重的工作,而且我也不需要对单元位置进行硬编码,因为excel文件可能会随时间而改变。

我还必须在行中添加一个隐藏的“ID”单元格。 我想我可以过桥了。

使用ADO.NET很容易将一行添加到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(); } 

上面的代码假定你有第一行的Column1 …作为列名。 此外,代码使用Excel 2007或2010的ACE OleDB提供程序而不是Microsoft.Jet.OleDb.4.0。

编辑:要引用一个命名的范围,你可以改变这个sql命令

  OleDbCommand cmd1 = new OleDbCommand("INSERT INTO [yourNamedRange] " + "VALUES(@value1, @value2, @value3, @value4)", cn); 

唉,我无法find一个方法来参考个别栏目。

  private Excel.Application app = null; private Excel.Workbook workbook = null; private Excel.Worksheet worksheet = null; private Excel.Range workSheet_range = null; private const int FIRTSCOLUMN= 0 //Here const you will use to select good column private const int FIRSTROW= 0 private const int FIRSTSHEET= 1 app = new Excel.Application(); app.Visible = true; workbook = app.Workbooks.Add(1); worksheet = (Excel.Worksheet)workbook.Sheets[FIRSTSHEET]; addData(FIRSTROW,FIRTSCOLUMN,"yourdata"); public void addData(int row, int col, string data) { worksheet.Cells[row, col] = data; }