当前位置: 首页 > wzjs >正文

企业网站建站之星Fastcgi做网站

企业网站建站之星,Fastcgi做网站,合肥室内设计,网站的维护与更新在日常办公场景中,通过Python脚本自动化整合Excel数据与Word文档,能够实现表格的智能迁移,满足不同场景下数据呈现的专业性要求。直接提取表格内容插入Word适用于需要快速传递核心数据的场景,确保信息精准直达;完整复制…

在日常办公场景中,通过Python脚本自动化整合Excel数据与Word文档,能够实现表格的智能迁移,满足不同场景下数据呈现的专业性要求。直接提取表格内容插入Word适用于需要快速传递核心数据的场景,确保信息精准直达;完整复制表格样式及格式则能保留原数据可视化效果,匹配正式报告对排版美观的严苛标准;而将表格作为OLE对象嵌入则兼顾了文档的动态更新能力,当源数据发生变更时,用户可通过双击对象直接调取Excel进行编辑,这种交互式设计特别适用于需要长期维护的协作文件。
本文将介绍如何使用Python通过以上三种方式将Excel表格插入到Word文档中。

文章目录

    • 提取Excel工作表数据插入Word文档
    • 复制Excel工作表数据及格式插入Word文档
    • 将Excel工作表作为OLE对象嵌入Word文档

本文所使用的Word文档操作方法需要用到Free Spire.Doc for Python(PyPI:pip install spire.doc.free),读取Excel工作表数据需要用到Free Spire.XLS for Python(PyPI:pip install spire.xls.free)。

提取Excel工作表数据插入Word文档

我们可以通过直接读取Excel工作表数据,然后在Word文档中创建表格并插入读取的数据,来实现Excel表格到Word文档的插入。
以下是操作步骤:

  1. 加载 Excel 文件

    • 创建 Workbook 实例并使用 LoadFromFile() 读取 Excel 文件。
    • 通过 Worksheets.get_Item(0) 获取第一个工作表。
    • 使用 AllocatedRange 获取已使用的单元格范围。
  2. 创建 Word 文档并添加表格

    • 创建 Document 实例,并使用 AddSection() 添加节。
    • 使用 AddTable() 添加表格。
  3. 复制 Excel 的表头到 Word

    • 使用 AddRow() 添加表头行。
    • 通过 AddCell().AddParagraph().AppendText() 填充表头文本。
  4. 复制 Excel 的数据行到 Word

    • 遍历 Excel 的数据行,使用 AddRow() 添加数据行。
    • 通过 Cells.get_Item(col).AddParagraph().AppendText() 填充单元格内容。
    • 如果单元格包含公式,则使用 FormulaValue,否则使用 Value
  5. 调整表格样式并保存 Word 文档

    • 使用 AutoFit(AutoFitBehaviorType.AutoFitToWindow) 让表格适应窗口。
    • 使用 ApplyStyle(DefaultTableStyle.GridTable1LightAccent6) 设置表格样式。
    • 使用 SaveToFile(path, FileFormat.Docx2019) 保存 Word 文档。

代码示例:

from spire.doc import Document, AutoFitBehaviorType, FileFormat, DefaultTableStyle
from spire.xls import Workbook# 指定Excel文件路径与输出Word文档路径
excel_file = "Sample.xlsx"
word_file = "output/ExcelDataToWord.docx"# 读取 Excel
with Workbook() as workbook:workbook.LoadFromFile(excel_file)worksheet = workbook.Worksheets.get_Item(0)allocated_range = worksheet.AllocatedRange# 创建 Word 文档with Document() as doc:section = doc.AddSection()table = section.AddTable()# 添加表头行header_row = table.AddRow()for col in range(allocated_range.ColumnCount):cell = header_row.AddCell()paragraph = cell.AddParagraph()paragraph.AppendText(allocated_range.get_Item(1, col + 1).Text)# 添加数据行for row in range(1, allocated_range.RowCount):data_row = table.AddRow()for col in range(allocated_range.ColumnCount):cell = data_row.Cells.get_Item(col)paragraph = cell.AddParagraph()cell_value = allocated_range.get_Item(row + 1, col + 1)text = cell_value.FormulaValue if cell_value.HasFormula else cell_value.Valueparagraph.AppendText(text)# 自动调整表格并应用样式table.AutoFit(AutoFitBehaviorType.AutoFitToWindow)table.ApplyStyle(DefaultTableStyle.GridTable1LightAccent6)# 保存 Word 文档doc.SaveToFile(word_file, FileFormat.Docx2019)

结果
Python插入Excel表格数据到Word文档

复制Excel工作表数据及格式插入Word文档

我们也可以使用库中提供的类、属性和方法来复制Excel数据到Word文档的同时,将单元格格式及文本格式一起复制到Word文档中,从而实现高还原度地插入Excel表格到Word文档。我们需要使用库中提供的组件来新建方法实现上述操作。以下是操作步骤:

  1. 加载 Excel 文件

    • 创建 Workbook 实例,并使用 LoadFromFile() 读取 Excel 文件。
    • 获取第一个工作表 sheet
  2. 创建 Word 文档并设置页面方向

    • 创建 Document 实例,使用 AddSection() 添加节。
    • 设置页面方向为横向:section.PageSetup.Orientation = PageOrientation.Landscape
  3. 创建 Word 表格

    • 使用 AddTable(True) 创建表格。
    • 通过 ResetCells(sheet.LastRow, sheet.LastColumn) 设置表格的行数和列数。
  4. 执行合并单元格操作

    • 使用 merge_cells(sheet, table) 方法,遍历 Excel 中的合并单元格,并在 Word 中执行相应的合并操作。
  5. 复制 Excel 数据和样式到 Word 表格

    • 遍历 Excel 表格的每一行和每一列,设置每行的高度:table.Rows[r - 1].Height = float(sheet.Rows[r - 1].RowHeight)
    • 获取每个单元格的数据和样式,使用 AddParagraph().AppendText() 方法将数据复制到 Word 表格中。
    • 调用 copy_style(text_range, x_cell, w_cell) 方法,复制 Excel 单元格的样式到 Word 单元格。
  6. 保存 Word 文档

    • 使用 SaveToFile("output/CopyExcelDataStyleToWord.docx", FileFormat.Docx2019) 保存 Word 文件。
  7. 释放资源

    • 调用 doc.Dispose()workbook.Dispose() 释放资源。

代码示例

from spire.xls import *
from spire.doc import *def merge_cells(sheet, table):"""根据 Excel 中的合并单元格信息,在 Word 表格中执行相应的合并操作。"""if not sheet.HasMergedCells:returnfor cell_range in sheet.MergedCells:start_row, start_col = cell_range.Row, cell_range.Columnrow_count, col_count = cell_range.RowCount, cell_range.ColumnCount# 处理水平合并if col_count > 1:for row in range(start_row, start_row + row_count):table.ApplyHorizontalMerge(row - 1, start_col - 1, start_col - 1 + col_count - 1)# 处理垂直合并if row_count > 1:table.ApplyVerticalMerge(start_col - 1, start_row - 1, start_row - 1 + row_count - 1)def copy_style(text_range, excel_cell, word_cell):"""将 Excel 单元格的样式复制到 Word 单元格。"""font = excel_cell.Style.Fonttext_range.CharacterFormat.TextColor = Color.FromRgb(font.Color.R, font.Color.G, font.Color.B)text_range.CharacterFormat.FontSize = float(font.Size)text_range.CharacterFormat.FontName = font.FontNametext_range.CharacterFormat.Bold = font.IsBoldtext_range.CharacterFormat.Italic = font.IsItalic# 设置单元格背景色if excel_cell.Style.FillPattern != ExcelPatternType.none:word_cell.CellFormat.BackColor = Color.FromRgb(excel_cell.Style.Color.R, excel_cell.Style.Color.G,excel_cell.Style.Color.B)# 设置水平对齐方式align_map = {HorizontalAlignType.Left: HorizontalAlignment.Left,HorizontalAlignType.Center: HorizontalAlignment.Center,HorizontalAlignType.Right: HorizontalAlignment.Right}if excel_cell.HorizontalAlignment in align_map:text_range.OwnerParagraph.Format.HorizontalAlignment = align_map[excel_cell.HorizontalAlignment]# 设置垂直对齐方式valign_map = {VerticalAlignType.Top: VerticalAlignment.Top,VerticalAlignType.Center: VerticalAlignment.Middle,VerticalAlignType.Bottom: VerticalAlignment.Bottom}if excel_cell.VerticalAlignment in valign_map:word_cell.CellFormat.VerticalAlignment = valign_map[excel_cell.VerticalAlignment]# 加载 Excel 文件
workbook = Workbook()
workbook.LoadFromFile("Sample.xlsx")# 获取第一个工作表
sheet = workbook.Worksheets[0]# 创建 Word 文档
doc = Document()
section = doc.AddSection()
section.PageSetup.Orientation = PageOrientation.Landscape# 创建 Word 表格
table = section.AddTable(True)
table.ResetCells(sheet.LastRow, sheet.LastColumn)# 执行合并单元格
merge_cells(sheet, table)# 复制 Excel 数据和样式到 Word 表格
for r in range(1, sheet.LastRow + 1):table.Rows[r - 1].Height = float(sheet.Rows[r - 1].RowHeight)for c in range(1, sheet.LastColumn + 1):x_cell = sheet.Range[r, c]w_cell = table.Rows[r - 1].Cells[c - 1]# 添加文本并复制样式text_range = w_cell.AddParagraph().AppendText(x_cell.NumberText)copy_style(text_range, x_cell, w_cell)# 保存 Word 文档
doc.SaveToFile("output/CopyExcelDataStyleToWord.docx", FileFormat.Docx2019)
doc.Dispose()
workbook.Dispose()

结果
Python复制Excel工作表数据及样式到Word文档

将Excel工作表作为OLE对象嵌入Word文档

我们还可以直接以OLE对象形式将Excel工作表嵌入到Word文档中,从而实现在Word文档中展示表格的同时,使表格拥有Excel的高级功能。在使用代码嵌入Excel工作表到Word文档时,需要先将Excel工作表保存为图像应用于Word文档中OLE对象的展示。当表格在Word文档中编辑或更新后,表格展示会自动更新为最新的数据。
以下是操作步骤:

  1. 定义文件路径

    • 定义 Excel 文件路径 excel_path 和输出 Word 文件路径 output_doc_path
    • 定义图像文件路径 image_path
  2. 创建 Word 文档并设置页面方向

    • 创建 Document 实例,使用 AddSection() 添加节。
    • 设置页面方向为横向:section.PageSetup.Orientation = PageOrientation.Landscape
    • 使用 AddParagraph() 添加段落。
  3. 载入 Excel 文件并获取工作表

    • 创建 Workbook 实例,并使用 LoadFromFile() 读取 Excel 文件。
    • 获取第一个工作表 sheet
  4. 将 Excel 表格转换为图像并保存

    • 使用 sheet.ToImage() 方法将工作表转换为图像,并保存为 image_path
  5. 创建并加载工作表图像

    • 创建 DocPicture 实例,并使用 LoadImage() 加载工作表图像。
  6. 将 OLE 对象(Excel 工作表)插入到 Word 文档

    • 使用 paragraph.AppendOleObject() 插入 Excel 工作表作为 OLE 对象,并将类型设置为 OleObjectType.ExcelWorksheet
    • 设置 OLE 对象不显示为图标:ole.DisplayAsIcon = False
  7. 保存 Word 文档

    • 使用 SaveToFile(output_doc_path, FileFormat.Docx2019) 保存 Word 文件。

代码示例

import os
from spire.doc import Document, DocPicture, FileFormat, OleObjectType, PageOrientation
from spire.xls import Workbook# 定义文件路径
excel_path = "Sample.xlsx"
output_doc_path = os.path.join("output", "InsertExcelOleToWord.docx")
image_path = "SheetImage.png"# 创建Word文档并配置页面方向
with Document() as doc:section = doc.AddSection()section.PageSetup.Orientation = PageOrientation.Landscapeparagraph = section.AddParagraph()# 载入Excel文件并获取第一个工作表with Workbook() as workbook:workbook.LoadFromFile(excel_path)sheet = workbook.Worksheets.get_Item(0)# 将Excel表格转换为图像并保存image_stream = sheet.ToImage(0, 0, sheet.AllocatedRange.RowCount, sheet.AllocatedRange.ColumnCount)image_stream.Save(image_path)# 创建DocPicture对象,并加载工作表图像pic = DocPicture(doc)pic.LoadImage(image_path)# 将OLE对象(Excel工作表)插入到Word文档ole = paragraph.AppendOleObject(excel_path, pic, OleObjectType.ExcelWorksheet)# 设置不显示OLE对象为图标ole.DisplayAsIcon = False# 保存Word文档doc.SaveToFile(output_doc_path, FileFormat.Docx2019)

结果
Python以OLE对象形式插入Excel工作表到Word文档

本文演示如何使用Python将Excel表格插入到Word文中,包括插入数据、复制数据和样式以及以OLE对象形式插入三种形式。


文章转载自:

http://BDL9av6l.tkmct.cn
http://6tDv41i4.tkmct.cn
http://loIhAoqn.tkmct.cn
http://2572itpK.tkmct.cn
http://0oPYnmuS.tkmct.cn
http://MyrNU3C1.tkmct.cn
http://CRgFMtJP.tkmct.cn
http://G33VpO77.tkmct.cn
http://6ZXAoFld.tkmct.cn
http://FsnCqIyx.tkmct.cn
http://SWLZ12pA.tkmct.cn
http://Unj1XUwy.tkmct.cn
http://v1Wssn3N.tkmct.cn
http://qver5xx8.tkmct.cn
http://SfcV5K9r.tkmct.cn
http://8nZzSbP8.tkmct.cn
http://NP76GQHf.tkmct.cn
http://CwSjKjM1.tkmct.cn
http://VWhTjZ4s.tkmct.cn
http://9HSDTbRn.tkmct.cn
http://4yNlgEcm.tkmct.cn
http://fSi4Xyy4.tkmct.cn
http://Z6lqdXd4.tkmct.cn
http://tGGpCktG.tkmct.cn
http://0H1jEqGH.tkmct.cn
http://v2umME3z.tkmct.cn
http://vn3QJiTC.tkmct.cn
http://vc16NRVv.tkmct.cn
http://ih68MQ4M.tkmct.cn
http://BvZY9Ide.tkmct.cn
http://www.dtcms.com/wzjs/767295.html

相关文章:

  • 个人网站怎么做扫码支付免费素材库网
  • 行政机关网站建设广告公司取名字大全免费查询
  • 开通网站运营商备案做网站资源
  • 重庆企业建站模板朝阳区手机网站设计服务
  • 广东省建设工程监督站官方网站双城网站建设公司
  • 做外贸网站要什么条件wordpress程序 wp
  • 合肥网站推广石柱网站建设
  • 做经销找厂家好的网站网站建设备案是什么
  • 网站维护技术seowhy
  • 四站合一网站建设南京网站制作链接
  • 效果建网站的公老外做的中国汉字网站
  • 网站基础功能介绍企业网站模板 免费
  • asp网站例子有文化内涵又高雅的公司名字
  • 广东省住房和城乡建设厅网站 粤建网国内知名广告公司有哪些
  • 郑州网站建设公司排名wordpress 主题介绍
  • 机电网站模板上海公司网站建设
  • 山东省住房和城乡建设厅服务网站婚庆公司套餐价目表
  • 法律服务网站建设优惠券 wordpress
  • 网站建设需要哪些费用游戏网站首页设计
  • 公司网站 免费模板杭州专业网站
  • 如何在电子表格上做网站的连接漫画网站建设
  • 微信分销网站建设价格邢台贴吧
  • 网站对企业的作用企业网站推广的线上渠道
  • 如何做网站?WordPress签到打卡
  • 网站模板使用手机版网站seo怎么做
  • seo网站的优化方案二级建造师证书查询官方网站
  • 免费自助网站建站做网站的 简历
  • 建外贸企业网站可以做企业网站
  • 河北集团网站建设wordpress后台汉化
  • 网站内页设置多少个关键字最好asp网站怎么改成中英双语