2016-05-31 12 views
2

Microsoft Dynamics AX 2009でExcelファイルを生成しています.9行目からExcelでテーブルを作成したいと考えています。範囲を設定しても、表は常にセルA1に表示されます。Excelファイルのテーブルの設定範囲

SysExcelRange   xlsRange; 
SysExcelListObject  listObj; 
#define.ListObjectName("xlGuess") 

...

xlsRange = xlsWorkSheet.range("A9"); 
listObj = xlsWorkSheet.listObjects().add(xlsRange, #ListObjectName); 

enter image description here

私はまた、 "A9:E13" のような完全な範囲を設定しようとしたと "A9:A13" が、それはどちらか動作しませんでした。おそらく、それはCOMオブジェクトで行うことは可能ですが、それを達成できませんでした。 なぜ機能しないのですか?

答えて

6

AXのExcelラッパーにバグがあるようです。
実際の範囲を基になるCOMオブジェクトに渡すように1行変更した場合、動作するようです。私が変更したもののスクリーンショットを見てください。

AX 2012のコードに似て

enter image description here

+1

、しかし:それはExcelは、このようなファイルが開きます。この

public static client void TestJob() { #define.ListObjectName("xlGuess") SysExcelApplication xlsApp; SysExcelWorksheet xlsWorksheet; SysExcelRange xlsRange; SysExcelListObject listObj; ; xlsApp = SysExcelApplication::construct(); xlsApp.workbooks().add(); xlsWorksheet = xlsApp.activeSheet(); xlsRange = xlsWorksheet.range("A9:C12"); listObj = xlsWorkSheet.listObjects().add(xlsRange, #ListObjectName); xlsApp.visible(true); } 

のようなAOTジョブに

enter image description here

'_range'オブジェクトが' null'かどうかをチェックします。 「はい」の場合は古いバージョンが使用され、もう1つは固定バージョンです。したがって、メソッドが範囲なしで呼び出された場合、このコードは失敗する可能性があります。 –