我稍微改變了一些來自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