2012-07-30 87 views
1

我有一個Excel表格,我正在使用Open XML SDK 2.0處理它。情景是,在我的Excel表中有一列包含日期。我需要從該欄中獲取最大和最小日期。使用LINQ和Open XML(Excel)

我可以通過循環和到達該單元格,做比較並找到所需的答案來做到這一點。

但由於最優我想用LINQ得到最大和最小日期做到這一點。

有沒有可能這樣做?如果是,那麼如何?

+0

我只是在每一行中循環和每個單元和達到該單元格包含日期和比較與最後保存日期的最大和最小 – 2012-07-30 20:27:35

回答

0

感謝所有

我用這樣的

IEnumerable<Cell> cells = workSheetPart.Worksheet.Descendants<Cell>().Where(c => string.Compare(GetColumnName(c.CellReference.Value), strIndex, false) == 0).OrderBy(c => c.CellValue.Text); 

並獲得最大值和最小值這樣

int cellCount = cells.Count(); 
Cell MaxCell = cells.ToArray()[0]; 
Cell MinCell = cells.ToArray()[cellCount - 1]; 
0

你會想看看LINQ Min()Max()函數。如果您需要返回整個Cell對象,則可以使用OrderByDescending()

+0

嗨..你可以請詳細告訴我..我不是越來越 – 2012-07-31 04:35:02

0

您可以閱讀這篇文章Open XML SDK and LINQ to XML Eric White(Eric寫了很多關於OpenXML和LINQ的文章)。然後您將能夠使用LINQ查詢您的Excel文件數據。您可能想要查看The Open XML SDK Productivity Tool中的電子表格對象結構,它可以爲您生成源代碼。您可以使用此代碼來了解如何以編程方式訪問您所需的數據。