• C# 将excel表格嵌入到Word中


    C# 将excel表格嵌入到Word

    继续开扒,今天要实现的是使用C#将excel表格嵌入到Word中这个功能,将word表格导入到excel中我已经写过了,如有需要可参考我之前的文章,在开始前还有一点需要指出的是在我的这个示例中是将excel表格转换为图片,然后再嵌入至Word文档中。

    为了展示一下效果,我做了一个简单的excel表格,请看源excel工作表截图:

                           

    下面看看如何使用代码:

    第一步:新建一个Visual C#控制台项目,添加引用并使用如下命名空间:

    using System.Drawing;
    using Spire.Doc;
    using Spire.Doc.Documents;
    using Spire.Doc.Fields;
    using Spire.Xls;
    

    第二步:创建一个ConvertExcelToImage(string excelFile)方法,将excel的工作表转换为图片。 

    static Image ConvertExcelToImage(string excelFile)
    {
        //创建一个excel workbook对象
        Workbook workbook = new Workbook();
        //加载excel文件
        workbook.LoadFromFile(excelFile);
        //获取第一个工作表
        Worksheet sheet = workbook.Worksheets[0];
        //获取第一个工作表的最后一行
        int lastRow = sheet.LastRow;
        //获取第一个工作表的最后一列
        int lastColumn = sheet.LastColumn;
    
        //将第一个工作表转换为图片
        Image image = workbook.Worksheets[0].SaveToImage(1, 1, lastRow, lastColumn);
        return image;
    }
    

    第三步:在主函数内,新建一个word文档对象,并给它添加一个section和段落。

    //新建一个word文档
    Document doc = new Document();
    //添加一个section
    Section section = doc.AddSection();
    //添加一个段落
    Paragraph paragraph = section.AddParagraph();
    

    第四步:获取excel文件的路径,新建一个DocPicture类的对象,调用ConvertExcelToImage()方法将excel工作表转换为图片并加载该图片。

    string excelfile = "Customers.xlsx";
    //新建一个DocPicture类的对象
    DocPicture pic = new DocPicture(doc);
    //将excel工作表转换为图片并加载
    pic.LoadImage(ConvertExcelToImage(excelfile));
    

    第五步:将图片嵌入到Word文档的段落中。 

    paragraph.AppendOleObject("Customers.xlsx", pic, Spire.Doc.Documents.OleObjectType.ExcelWorksheet);
    

    第六步:保存文档。

    doc.SaveToFile("Output.docx", Spire.Doc.FileFormat.Docx); 
    

    嵌入到word文档的效果图:

    全部代码:

    using System.Drawing;
    using Spire.Doc;
    using Spire.Doc.Documents;
    using Spire.Doc.Fields;
    using Spire.Xls; 
    
    namespace Embed_Excel_to_Word
    {
        class Program
        {
            static Image ConvertExcelToImage(string excelFile)
            {
                //创建一个excel workbook对象
                Workbook workbook = new Workbook();
               //加载excel文件
                workbook.LoadFromFile(excelFile);
                //获取第一个工作表
                Worksheet sheet = workbook.Worksheets[0];
                //获取第一个工作表的最后一行
                int lastRow = sheet.LastRow;
                //获取第一个工作表的最后一列
                int lastColumn = sheet.LastColumn;
    
                //将第一个工作表转换为图片
                Image image = workbook.Worksheets[0].SaveToImage(1, 1, lastRow, lastColumn);
                return image;
            }
    
            static void Main(string[] args)
            {
                //新建一个word文档
                Document doc = new Document();
                //添加一个section
                Section section = doc.AddSection();
                //添加一个段落
                Paragraph paragraph = section.AddParagraph();
                //获取excel文件的路径
                string excelfile = "Customers.xlsx";
                //创建一个DocPicture类的对象pic
                DocPicture pic = new DocPicture(doc);
                //将excel工作表转换为图片并加载
                pic.LoadImage(ConvertExcelToImage(excelfile));
                //将图片嵌入到word文档中
                paragraph.AppendOleObject("Customers.xlsx", pic, Spire.Doc.Documents.OleObjectType.ExcelWorksheet);
    
                //保存word文档
                doc.SaveToFile("Output.docx", Spire.Doc.FileFormat.Docx);
            }
        }
    }
    

    总结:

    需要注意的是E-iceblue的excel和word组件是两个独立的组件,一起使用会起冲突抛出异常,因此这里我使用的是Office组件,也就是添加office组件里的excel和word相关的dll文件作为引用。

  • 相关阅读:
    基于WF4的新平台流程模式(3)并发
    基于Wxwinter.BPM 的MEF 接口开发业务流程
    基于WF4的新平台流程设计器功能更新说明
    基于WF4的新平台流程模式(8)表单路由
    Wxwinter.BPM类库更新
    WF4的新平台代码提供说明
    介绍一下我的职业
    NET 4.5 中状态机工作流
    Scorpion and the frog 蝎子和青蛙
    直观理解贝叶斯公式
  • 原文地址:https://www.cnblogs.com/Yesi/p/5162564.html
Copyright © 2020-2023  润新知