Spire.Doc for .NET是一款专门对 Word 文档进行操作的 .NET 类库。在于帮助开发人员无需安装 Microsoft Word情况下,轻松快捷高效地创建、编辑、转换和打印 Microsoft Word 文档。拥有近10年专业开发经验Spire系列办公文档开发工具,专注于创建、编辑、转换和打印Word/PDF/Excel等格式文件处理,小巧便捷。

Spire.Doc for.NET 最新下载(qun:767755948)https://www.evget.com/product/3368/download

在日常工作中,我们可能会收到Word文档,其中有时会包含嵌入的Excel对象(工作表),我们需要将嵌入的Excel工作表转换为Word表格,以便我们可以方便地更改日期或格式化表格样式。在本文中,您将学习如何在 C#、VB.NET 中使用 Spire.Doc 和 Spire.XLS 将嵌入式 Excel 工作表转换为 Word 表格。

首先,您需要下载 Spire.Office,因为 Spire.Doc 和 Spire.XLS 将在同一个程序中使用。在您的 VS 项目中添加 Spire.Doc.dll 和 Spire.XLS.dll 作为引用。然后按照下面的程序指导完成这项工作。

第一步:新建一个Word文档,载入示例文件。从节中获取包含 Excel 对象的段落。初始化一个新的数据表。

Document doc = new Document("Sample.docx", Spire.Doc.FileFormat.Docx2010);
Section section = doc.Sections[0];
Paragraph para = section.Paragraphs[2];
DataTable dt = new DataTable();

第二步:遍历段落中的每一个DocumentObject,用IF语句判断DocumentObject是否为OLE对象,用另一个IF语句判断OLE对象类型是否为Excel.Sheet.12。如果是,则通过LoadFromStrem()将 OLE 对象的数据保存到工作簿中。然后将数据从工作表导出到数据表。

foreach (DocumentObject obj in para.ChildObjects)
{
if (DocumentObjectType.OleObject == obj.DocumentObjectType)
{
DocOleObject dObj = obj as DocOleObject;
if (dObj.ObjectType == "Excel.Sheet.12")
{
Workbook wb = new Workbook();
wb.LoadFromStream(new MemoryStream(dObj.NativeData));
Worksheet ws = wb.Worksheets[0];
dt = ws.ExportDataTable(ws.AllocatedRange, false);
}
}
}

第三步:新建一个Word表格,根据datatable的行列设置行号和列号。将数据从数据表导出到 Word 表。

Table table = section.AddTable(true);
table.ResetCells(dt.Rows.Count, dt.Columns.Count);for (int i = 0; i < dt.Rows.Count; i++)
{
for (int j = 0; j < dt.Columns.Count; j++)
{
string text = dt.Rows[i][j] as string;
table.Rows[i].Cells[j].AddParagraph().AppendText(text);
}
}

第 四 步:保存文件。

doc.SaveToFile("Result.docx", Spire.Doc.FileFormat.Docx2010);

结果:

完整代码

[C#]

using Spire.Doc;
using Spire.Doc.Documents;
using Spire.Doc.Fields;
using Spire.Xls;
using System.Data;
using System.IO;
namespace ApplyTableStyles
{
class Program
{static void Main(string[] args)
{Document doc = new Document("Sample.docx", Spire.Doc.FileFormat.Docx2010);
Section section = doc.Sections[0];
Paragraph para = section.Paragraphs[2];
DataTable dt = new DataTable();foreach (DocumentObject obj in para.ChildObjects)
{
if (DocumentObjectType.OleObject == obj.DocumentObjectType)
{
DocOleObject dObj = obj as DocOleObject;
if (dObj.ObjectType == "Excel.Sheet.12")
{
Workbook wb = new Workbook();
wb.LoadFromStream(new MemoryStream(dObj.NativeData));
Worksheet ws = wb.Worksheets[0];
dt = ws.ExportDataTable(ws.AllocatedRange, false);
}
}
}Table table = section.AddTable(true);
table.ResetCells(dt.Rows.Count, dt.Columns.Count);for (int i = 0; i < dt.Rows.Count; i++)
{
for (int j = 0; j < dt.Columns.Count; j++)
{
string text = dt.Rows[i][j] as string;
table.Rows[i].Cells[j].AddParagraph().AppendText(text);
}
}doc.SaveToFile("Result.docx", Spire.Doc.FileFormat.Docx2010);
}
}
}

[VB.NET]

Imports Spire.Doc
Imports Spire.Doc.Documents
Imports Spire.Doc.Fields
Imports Spire.Xls
Imports System.Data
Imports System.IO
Namespace ApplyTableStyles
Class ProgramPrivate Shared Sub Main(args As String())Dim doc As New Document("Sample.docx", Spire.Doc.FileFormat.Docx2010)
Dim section As Section = doc.Sections(0)
Dim para As Paragraph = section.Paragraphs(2)
Dim dt As New DataTable()For Each obj As DocumentObject In para.ChildObjects
If DocumentObjectType.OleObject = obj.DocumentObjectType Then
Dim dObj As DocOleObject = TryCast(obj, DocOleObject)
If dObj.ObjectType = "Excel.Sheet.12" Then
Dim wb As New Workbook()
wb.LoadFromStream(New MemoryStream(dObj.NativeData))
Dim ws As Worksheet = wb.Worksheets(0)
dt = ws.ExportDataTable(ws.AllocatedRange, False)
End If
End If
NextDim table As Table = section.AddTable(True)
table.ResetCells(dt.Rows.Count, dt.Columns.Count)For i As Integer = 0 To dt.Rows.Count - 1
For j As Integer = 0 To dt.Columns.Count - 1
Dim text As String = TryCast(dt.Rows(i)(j), String)
table.Rows(i).Cells(j).AddParagraph().AppendText(text)
Next
Nextdoc.SaveToFile("Result.docx", Spire.Doc.FileFormat.Docx2010)
End Sub
End Class
End Namespace

以上便是如何在 C#、VB.NET 中将嵌入式 Excel 工作表转换为 Word 表格,如果您有其他问题也可以继续浏览本系列文章,获取相关教程,你还可以给我留言或者加入我们的官方技术交流群。

Word控件Spire.Doc 【Table】教程(10): 如何在 C#、VB.NET 中将嵌入式 Excel 工作表转换为 Word 表格相关推荐

  1. Word控件Spire.Doc 转换教程(六):如何将 XML 转换为 Word

    为什么使用 C#/VB.NET 将 Office OpenXML 转换为 Word? 作为一种出色的编程语言,Office OpenXML 在其自然形式下很难导航和访问.将文件从 Office Ope ...

  2. Word控件Spire.Doc 转换教程(十二):如何将 Word 转换为 EPub、XPS、Emf

    本文将介绍一种通过名为 Spire.Doc 的强大且独立的Word .NET 组件将 Word 转换为 EPub.XPS.Emf的简单方法,无需在机器上安装 Microsoft Word.它还支持将 ...

  3. Word控件Spire.Doc 转换教程(十八): 将 RTF 转换为图像并重置图像分辨率

    Spire.Doc具有在 C# 和 VB.NET 中操作 RTF 文件格式的强大能力.通过使用 Spire.Doc,开发人员可以将 RTF 转换为 PDF.HTML和 .doc..docx 格式的 w ...

  4. Word控件Spire.Doc 转换教程(二十三):保留或禁用从 Word 到 PDF 转换的超链接

    超链接为读者提供了更多的附加信息,它被广泛用于我们的 word 文档.Spire.Doc 具有强大的超链接文字元素操作功能.开发者可以在word文档中添加.修改和删除超链接.Spire.Doc for ...

  5. Word控件Spire.Doc 转换教程(十一):如何将 HTML 转换为图像

    Spire.Doc 可以帮助用户使用 C#/VB.NET 将HTML 转换为 Image.该解决方案使用户可以随时随地通过手机.MP4播放器.PSP.iPad.iTouch等便携式设备阅读HTML.按 ...

  6. Word控件Spire.Doc 转换教程(七):如何将 Word 转换为 RTF

    为什么要将 Word 转换为 RTF? 自 1990 年代以来,Microsoft 开始为其一系列专有的文字处理格式使用 .doc 扩展名.Doc 格式通常与 Microsoft Office 应用程 ...

  7. Word控件Spire.Doc 转换教程(二十八):将 Word 转换为 PCL

    PCL 文件是以打印机命令语言(通常称为 PCL)页面描述语言创建的数字打印文档.从v7.1.19 开始,Spire.Doc 支持将 word 文档转换为 PCL.PCL文件的标准有很多种:这里的 P ...

  8. Word控件Spire.Doc 转换教程(二十五):在 C#、VB.NET 中将 ODT 转换为 DOC

    具有 .ODT 文件扩展名的文件是 OpenDocument 文本文档文件.这些文件通常由免费的 OpenOffice Writer 文字处理器程序创建.ODT 文件类似于与 Microsoft Wo ...

  9. Word控件Spire.Doc 转换教程(二十六):在 C#、VB.NET 中将 Word 转换为 EPUB 时添加封面图片

    我们之前介绍如何将 Word 转换为 EPUB的文档.但是,在从 Word 文档创建 EPUB 图书时,您可能希望将封面图像添加到 EPUB.以下代码片段将演示相同的内容. Spire.Doc for ...

最新文章

  1. oracle grant 权限
  2. 百度:I am from China, wait, am I?
  3. python怎么字体加阴影_如何添加阴影到tkinter帧?
  4. 回顾我学过的编程语言
  5. linux c调用wcf服务,Silverlight+WCF实现跨域调用
  6. 关于Newtonsoft.Json,LINQ to JSON的一个小demo
  7. 修改MySQL自动递增值
  8. 将m文件通过matlab 的编译器转换为可执行文件,【转】 Matlab中提高m文件执行效率的小技巧...
  9. 安卓相机如何设置对焦模式
  10. oracle查询functions名字,oracle 怎样查看已经存在的函数,过程?
  11. 拓展——Microsoft Office Visio下载
  12. 联想Y50更换固态硬盘
  13. Qt获取本地ip地址
  14. 如何使用SiteSucker下载HTML源文件?下载html源文件的两种方法
  15. 【Linux基础】Linux简史
  16. 关于720p和1080p观看距离和效果
  17. PHP/MySQL教程
  18. 人和人最大的差别不是技术上的高低,而是你的人生观价值观
  19. Hive数据仓库实战
  20. 什么是Python之禅?

热门文章

  1. 手机android的文件怎么恢复,如何恢复安卓手机内置存储中已删除的文件
  2. 解决HttpClient::setHeader() must be of the type string, null given
  3. 用JAVA语言写一个计算员工月工资的程序
  4. Android添加快捷方式(Short)到手机桌面
  5. 直击智能语音行业痛点,腾讯云小微云函数助力AI语音落地
  6. 2023年HCIA-Cloud Service V3.0 H13-811(最新考试题库200题)
  7. 用笔记本编程,强烈建议外接一个大屏幕显示器!(最好用HDMI接口)
  8. [附源码]计算机毕业设计JAVA二手车交易系统
  9. 通过wireshark抓取Lookback数据包
  10. SVT | Street View Text Dataset | Chars74K dataset | 带文本的街景 OCR 数据集