【问题标题】:how to display content of oleObject that embeded in aspose.word for c# .Net如何为 c# .Net 显示嵌入 aspose.word 中的 oleObject 的内容
【发布时间】:2017-11-22 14:01:39
【问题描述】:

我创建了一个工作簿

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

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

【问题讨论】:

    标签: c# .net ole aspose aspose.words


    【解决方案1】:

    请再添加一行代码,正如我在此处显示的那样,它应该可以解决您的问题。让我们知道您的反馈。

    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 担任开发人员宣传员

    【讨论】:

    • 所以谢谢,但仍然没有将 excel 工作表显示为表格,并且仅通过 aspose 为 .net 图标显示 excel 对象。在此 docx 中,我必须单击该图标,然后打开我的工作簿,但我想要数据表显示在docx中。
    • 您必须使用 Aspose.Cells 创建工作表图像,然后通过 FromFile() 或 FromStream() 方法创建 System.Drawing.Image,然后将其作为参数传递以替换 null。即代码中的最后一个参数为空,但您应该传递您自己的 Image 对象。即 Aspose.Words.Drawing.Shape shp = builder.InsertOleObject(memorystream, "Excel.Sheet.12", false, yourImg);
    【解决方案2】:

    我修改了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);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-04-28
      • 1970-01-01
      • 2021-11-07
      • 1970-01-01
      • 1970-01-01
      • 2023-04-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多