将多维string数组导出到新的Excel电子表格

使用互操作我设法导入一个Excel文档(包含人口)到这种格式的多维string数组:

public string[,] DataArray; 

我用这个方法来填充数组:

 try { Excel.Application xlApp = new Excel.Application(); xlWorkBook = xlApp.Workbooks.Open(FilePath); Excel._Worksheet xlWorksheet = xlWorkBook.Sheets[1]; Excel.Range xlRange = xlWorksheet.UsedRange; rowCount = xlRange.Rows.Count; colCount = xlRange.Columns.Count; InitialiserTableauPopulation(rowCount, colCount); for (int x = 1; x <= colCount; x++) { for (int y = 1; y <= rowCount; y++) { DataArray[x - 1, y - 1] = xlRange.Cells[y, x].Value2.ToString(); } } xlApp.Workbooks.Close(); } catch (Exception ex) { MessageBox.Show(ex.message); } 

在debugging时,我可以看到格式是正确的,对于每个X(列名),我有多个Y(行数据)。

示例: DataArray [0,0] = NAME, DataArray [0,1] = JAMES, DataArray [0,2] = ERIC等

现在我要做的是采取这个人口的样本,做一个新的多维string数组然后出口这个“样本”一个新的Excel文档:但我迷路了。

我应该如何继续导出一个现有的二维string数组到一个新的Excel表,保持相同的数组[行]格式?

您只需要创build一个新的Excel.Application ,添加一个新的Excel.Workbook并从Excel.Workbook获取Excel.Workbook

然后,您可以使用嵌套的for -loop遍历DataArray ,并根据需要使用Excel.WorksheetCell -Property添加值。

然后保存您的新工作簿并适当地closures它。 这可能看起来像这样

 private void SaveDataArray(string excelFileName, string[,] dataArray) { var xlApp = new Application(); var xlWorkBook = xlApp.Workbooks.Add(); var xlWorkSheet = (Worksheet)xlWorkBook.Worksheets.Item[1]; for (int i = 0; i < dataArray.GetLength(0); i++) { for (int j = 0; j < dataArray.GetLength(1); j++) { xlWorkSheet.Cells[j + 1, i + 1] = dataArray[i, j]; } } xlWorkBook.SaveAs(excelFileName); xlWorkBook.Close(true); xlApp.Quit(); } 

然后像这样调用方法

  // create some sample data ... string[,] dataArray = new string[1, 3]; dataArray[0, 0] = "NAME"; dataArray[0, 1] = "JAMES"; dataArray[0, 2] = "ERIC"; SaveDataArray("c:\\temp\\exceltest.xlsx", dataArray); 

虽然我没有给你一个很好的答案,但你并没有给我们提供你正在使用的互操作。 首先我会问你为什么要努力做到这一点? 你不能像http://epplus.codeplex.com/那样使用第三方的库文&#x4EF6;