用C#写入Excel文件

我有一个Excel文件,我能够从“Excel文件”逐个单元格读取单行,并将其存储在ArrayList中。 ExcelRange一次读取一行,将其存储到ArrayList(arrForValues)中。

ExcelRange = ExcelWorkSheet.get_Range("A"+rowNumber,columnMaxName+rowNumber ); items = (object[,])ExcelRange.Value2; for (int i = 1; i <= nColumn; i++) { arrForValues.Add(items[1, i]); } 

我想写行到另一个Excel文件。有一些条件,需要满足“特定的行”来select写作。

有什么办法我可以写完整的ArrayList(“单行”)到ExcelFile,而不是单元格按细胞Wrinting。

提前致谢。

我在一些代码中写了一些Excel。 我发现这样做的唯一方法是用foreach遍历我的值列表,并使用索引器来跟踪它将要进入的单元格。 您可能会调查Range类和Cells属性: http : //msdn.microsoft.com/en-US/library/microsoft.office.tools.excel.namedrange.cells(v = vs.80).aspx

这不适合我正在做的事,但可能适合你。

另一种方法是合并一个范围内的单元格,在数组中构build一个所有值的string,并将合并的范围值设置为等于该string,但这可能不是您想要的。

您可以使用范围的set_value方法编写整个对象数组

这里是例子:

 class Program { static void Main(string[] args) { string file = AppDomain.CurrentDomain.BaseDirectory + "SetArrayToExcel.xlsx"; Excel.Application excelApp = new Excel.Application(); excelApp.Visible = true; Excel.Workbook wb = excelApp.Workbooks.Open(file, Type.Missing, Type.Missing , Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing , Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing , Type.Missing, Type.Missing); object[,] testTable = new object[2, 2]{{"6-Feb-10", 0.1}, {"26-Mar-10", 1.2}}; Excel.Worksheet ws = wb.ActiveSheet as Excel.Worksheet; Excel.Range rng = ws.get_Range("rngSetValue", Type.Missing); //rng.Value2 = testTable; rng.set_Value(Type.Missing, testTable); } } 

我强烈build议刚刚获得FlexCel。 它相当便宜,它有复制行和列的方法。

编辑:我看到你的意思是复制工作簿之间。 FlexCel比COM或Interop的东西更容易。