1
新しいワークシートで使用するセルの範囲を取得する必要があります。例:ExcelのVBAでOpenXMLでExcelワークシートの使用範囲を取得するにはどうすればよいですか?
A1:AY55
、これは適切な名前UsedRange
プロパティを介して取得することができます。 OpenXMLに相当するものはありますか?
新しいワークシートで使用するセルの範囲を取得する必要があります。例:ExcelのVBAでOpenXMLでExcelワークシートの使用範囲を取得するにはどうすればよいですか?
A1:AY55
、これは適切な名前UsedRange
プロパティを介して取得することができます。 OpenXMLに相当するものはありますか?
Worksheet
のプロパティとして見つけることができるSheetDimension
クラスに見つけることができます。次のコードは、使用された範囲をコンソールに書き出します。
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'はnullです。これは既存のファイルでのみ機能するのでしょうか、または新しく生成されたワークシートのために入手する方法がありますか? –
新しく生成されたシートの場合、OpenXml経由で自分で書き込まない限り、値は存在しません。残念なことにその情報を生成するためにOpenXml内に自動化されたものはありません。シートが新しいのであれば、それはあなたがそれを生成しているということですか?その場合、あなたはすでに範囲を知っていませんか? – petelids
私は数値範囲を知っていますが、VBAのようにアドレス範囲を取得する組み込みの方法を探していました。これが実装されていない場合は、私が作業する[Excelの列名を生成するための素晴らしい答え](http://stackoverflow.com/a/31035990/1958726)があります。 –