C# 将excel表格嵌入到Word中

C# 将excel表格嵌入到Word

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

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

                       

下面看看如何使用代码:

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

1
2
3
4
5
using System.Drawing;
using Spire.Doc;
using Spire.Doc.Documents;
using Spire.Doc.Fields;
using Spire.Xls;

 

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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和段落。

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

 

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

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

 

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

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

 

第六步:保存文档。

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

 

嵌入到word文档的效果图:

 

全部代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
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文件作为引用。

posted @   E-iceblue  阅读(4114)  评论(4编辑  收藏  举报
编辑推荐:
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
阅读排行:
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 上周热点回顾(2.17-2.23)
· 如何使用 Uni-app 实现视频聊天(源码,支持安卓、iOS)
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
点击右上角即可分享
微信分享提示