1
我需要在新工作表中獲取已使用的單元格範圍。例如:如何獲得Excel工作表使用的OpenXML範圍?
A1:AY55
在Excel VBA,這可以通過恰當地命名爲UsedRange
屬性來獲得。 OpenXML中是否有等價物?
我需要在新工作表中獲取已使用的單元格範圍。例如:如何獲得Excel工作表使用的OpenXML範圍?
A1:AY55
在Excel VBA,這可以通過恰當地命名爲UsedRange
屬性來獲得。 OpenXML中是否有等價物?
它可以在SheetDimension
類中找到,它可以作爲Worksheet
的屬性找到。以下代碼將使用的範圍寫入控制檯:
using (SpreadsheetDocument spreadsheetDocument = SpreadsheetDocument.Open(filename, false))
{
WorkbookPart workbookPart = spreadsheetDocument.WorkbookPart;
//get the correct sheet
Sheet sheet = workbookPart.Workbook.Descendants<Sheet>().Where(s => s.Name == "Sheet1").First();
WorksheetPart worksheetPart = workbookPart.GetPartById(sheet.Id) as WorksheetPart;
Console.WriteLine(worksheetPart.Worksheet.SheetDimension.Reference);
}
由於工作表是新的,因此「SheetDimension」爲空。這隻適用於現有的文件,還是有辦法讓它爲新生成的工作表? –
對於新生成的工作表,除非您通過OpenXml自行編寫,否則該值不會存在。 OpenXml中沒有任何內容自動生成該信息。如果表單是新的,那是否意味着你正在生成它?在那種情況下你不會知道範圍嗎? – petelids
我知道數字範圍,但正在尋找一種內置的方式來獲得與VBA一樣的地址範圍。如果沒有實現,你有[生成Excel列名稱的很好的答案](http://stackoverflow.com/a/31035990/1958726),我會從中工作。 –