2017-11-22 5 views
0

ich erstellen Sie eine Arbeitsmappe, wie Inhalte von OLEObject anzuzeigen, die .Net in aspose.word für C# embeded

  Document doc = new Document(); 
      var builder = new DocumentBuilder(doc); 
      Workbook workbook = new Workbook(); 
      int i = workbook.Worksheets.Add(); 
      Worksheet sheet = workbook.Worksheets[i]; 

und dann meine Zellen erstellen und dann einen Einsatz es zu meinem Dokument insertOleObject Methode:

MemoryStream memorystream = new MemoryStream(); 
       workbook.Save(memorystream, Aspose.Cells.SaveFormat.Xlsx); 
       byte[] bytes = memorystream.ToArray(); 
Shape oleObject = builder.InsertOleObject(memorystream, "Excel.Sheet.2", false, null); 

ich möchte Arbeitsblatt, das ich in der Arbeitsmappe erstellen können als Tabelle angezeigt werden, aber das geschieht nicht.

Antwort

1

I modify code as shakeel sagte im Kommentar seines Answ Er und ich erreichen:

MemoryStream memorystream = new MemoryStream(); 
      workbook.Save(memorystream, Aspose.Cells.SaveFormat.Xlsx); 
      byte[] bytes = memorystream.ToArray(); 
      memorystream.Position = 0; 
      // Apply different Image and Print options 
      var options = new Aspose.Cells.Rendering.ImageOrPrintOptions 
      { 
       HorizontalResolution = 200, 
       VerticalResolution = 200 
      }; 
      // Set Horizontal Resolution 
      // Set Vertical Resolution 
      var sr = new SheetRender(sheet, options); 
      MemoryStream imageStream = new MemoryStream(); 
      sr.ToImage(0, imageStream); 
      System.Drawing.Image image = Image.FromStream(imageStream); 
      Shape oleObject = builder.InsertOleObject(memorystream, "Excel.Sheet.12", false, image); 
3

Bitte fügen Sie eine weitere Codezeile hinzu, wie ich hier gezeigt habe, und es sollte Ihr Problem beheben. Lass uns dein Feedback wissen.

C#

MemoryStream memorystream = new MemoryStream(); 
workbook.Save(memorystream, Aspose.Cells.SaveFormat.Xlsx); 
//Add this line 
memorystream.Position = 0; 

Hier ist der vollständige runnable Code für Ihre Referenz.

Titel: Insert Microsoft Excel OLE-Objekt in Microsoft Word-Dokument

C#

Document doc = new Document(); 
var builder = new DocumentBuilder(doc); 

Workbook workbook = new Workbook(); 

Worksheet sheet = workbook.Worksheets[0]; 
sheet.Cells["D3"].PutValue("This is sample data."); 
sheet.Cells["J20"].PutValue("End"); 

MemoryStream memorystream = new MemoryStream(); 
workbook.Save(memorystream, Aspose.Cells.SaveFormat.Xlsx); 
memorystream.Position = 0; 

Aspose.Words.Drawing.Shape shp = builder.InsertOleObject(memorystream, "Excel.Sheet.12", false, null); 

doc.Save("Output.docx"); 

Hinweis: Ich arbeite als Entwickler Evangelist bei Aspose

+0

so Dank aber immer noch nicht als Tabelle Excel-Tabelle zeigt, und nur ein Excel-Objekt durch Aspose für .net-Symbol zeigen .in dieser docx i auf das Symbol klicken muss dann meine Arbeitsmappe geöffnet aber ich möchte Datentabelle in docx angezeigt werden. –

+1

Sie müssen ein Arbeitsblatt Bild erstellen Aspose.Cells und anschließend System.Drawing.Image über Fromfile() oder FromStream() Methoden erstellen und dann geben sie als Parameter in der null ersetzen. das heißt der letzte Parameter in dem Code ist null, aber Sie sollten Ihr eigenes Image-Objekt übergeben. d.h. Aspose.Words.Drawing.Shape SHP = builder.InsertOleObject (Memory "Excel.Sheet.12", false, yourImg); – shakeel

+0

vielen dank –

Verwandte Themen