将多维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.Worksheet
的Cell
-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/那样使用第三方的库文件