mxdのpagelayoutにExcelシートを追加する方法の方向性を探しています。 arcmapインターフェースを通して利用可能な機能によく似ています。C#Arcobjects:pagelayoutにExcelオブジェクトを挿入します。
私はC#arcobjects(10.5)を使用しており、MXDをメモリにロードしています。その時、私はpagelayoutにExcelを追加し、PDFにエクスポートします。
私は 'rawSrc'変数をキャストすると、nullです。助けのための
IPageLayout pageLayout = myMXD.PageLayout;
IGraphicsContainer graphicsContainer = pageLayout as IGraphicsContainer;
RectangleElement ExcelSrc = new RectangleElement();
double posX = 0.8008;
double posY = 6.9567;
double Legwidth = 4.8;
System.Double w = 11.0301;
System.Double h = 9.0949;
System.Double aspectRatio = w/h;
var envelope = new EnvelopeClass();
envelope.PutCoords(posX, posY, (posX * Legwidth), (posY * Legwidth/aspectRatio));
ExcelSrc.Geometry = envelope;
string xcelPath = System.IO.Path.Combine("string to my directory", "Data.xlsx");
var rawSrc = new XLWorkbook(xcelPath).Worksheet("Table");
IVariantStream blobStream = new VariantStreamIOClass();
blobStream = rawSrc as IVariantStream;
ExcelSrc = blobStream.Read() as RectangleElement;
graphicsContainer.AddElement(((IElement)ExcelSrc), 0);
((IActiveView)myMXD.PageLayout).PartialRefresh(esriViewDrawPhase.esriViewGraphics, null, null);
myMXD.Save();
Marshal.FinalReleaseComObject(blobStream);
ありがとう:私は正しいIElementタイプが何であるかわかりません。
"キャスト時にnullです"キャストは何ですか?あなたはどこで 'ヌル'を得ますか? – HimBromBeere
@HimBromBeereありがとうございます。私はより明確になるように投稿を更新しました。 – Arnej65