代码之家  ›  专栏  ›  技术社区  ›  Aref Zamani

如何显示嵌入到aspose中的oleObject的内容。c#的单词。网

  •  0
  • Aref Zamani  · 技术社区  · 7 年前

    我创建工作簿

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

    insertOleObject 方法:

        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);
    

    我希望我在工作簿中构建的工作表可以显示为表格,但这不会发生。

    2 回复  |  直到 7 年前
        1
  •  3
  •   shakeel    7 年前

    请再添加一行代码,如我在这里所示,它应该可以解决您的问题。让我们知道您的反馈。

    C#

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

    以下是完整的可运行代码,供您参考。

    标题: 将Microsoft Excel Ole对象插入Microsoft Word文档

    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");
    

    注: 我在Aspose担任开发人员传道者

        2
  •  1
  •   Aref Zamani    7 年前

    我修改了shakeel在评论其答案时所说的代码,我实现了:

     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);