将多维字符串数组导出到新的 Excel 电子表格
本文关键字:Excel 电子表格 字符串 数组 | 更新日期: 2023-09-27 18:33:09
使用互操作,我设法将一个 excel 文档(包含填充)导入到以下格式的多维字符串数组中:
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);
}
在调试时,我可以看到格式是正确的,对于每个 X(列名),我有多个 Y(行数据)。
示例:DataArray[0,0] = NAME,DataArray[0,1] =JAMES,DataArray[0,2] = ERIC,等等。
现在我要做的是取这个总体的样本,制作一个新的多维字符串数组,然后将这个"样本"导出到一个新的 excel 文档中:但我迷路了。
我应该如何继续将现有的二维字符串数组导出到新的 excel 工作表,保持相同的 Array[column][row] 格式?
你只需要创建一个新的Excel.Application
,添加一个新Excel.Workbook
并从Excel.Workbook
中获取Excel.Worksheet
。
然后,您可以使用嵌套的 for
-循环循环遍历DataArray
,并根据需要使用Excel.Worksheet
的 Cell
-属性添加值。
然后保存新工作簿并适当地将其关闭。这可能看起来像这样
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/那样使用第 3 部分库