我稍微改变了一些来自msdn.com的代码。我试图在Excel电子表格中获取所有工作表名称的字符串数组。我可以在foreach
语句中添加一些代码,以便每次循环时都将attr.Value放入数组中?用C#中的'foreach'循环创建一个字符串数组
public static void GetSpreadsheetData(string fileName)
{
using (SpreadsheetDocument spreadsheetDocument = SpreadsheetDocument.Open(fileName, false))
{
string[] allTheSheets = new string[0];
string[] allTheData = new string[0];
S sheets = spreadsheetDocument.WorkbookPart.Workbook.Sheets;
foreach (E sheet in sheets)
{
foreach (A attr in sheet.GetAttributes())
{
int i = 0;
string sheetName = attr.Value;
allTheSheets[i] = attr.Value.ToString();
i++;
Console.WriteLine(allTheSheets[0]);
Console.ReadLine();
}
}
}
}
以下是错误消息我得到:
“索引数组的范围之外。”
让我困惑的事情之一是,当我实例化数组时,我给了它一个索引[0],那么这是如何超出边界?
你正在创建与'0'长度的阵列(allTheSheets)。你有没有考虑过使用List? –
阵列大小固定。你无法调整它的大小。所以你必须首先正确确定它的大小。如果您不知道尺寸,请使用“列表”。 –
你的代码有点奇怪。你知道你在哪一行得到异常。仔细查看,您的数组中的索引始终为零,这会使您的数组无用。 – Steve