用Python导入CSV和Excel表格数据到Word表格

2024-09-02 17:44

本文主要是介绍用Python导入CSV和Excel表格数据到Word表格,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在不同格式的文档之间进行数据传输是非常重要的操作。例如将CSV和Excel表格数据导入到Word文档中,不仅可以实现数据的有效整合与展示,还能极大地提升工作效率和文档的专业性。无论是生成报告、制作统计分析还是编制业务文档,熟练掌握用Python处理这些常见文档的数据,能帮助我们更灵活地管理和呈现信息,满足各种需求。本文将介绍如何使用Python将CSV和Excel表格数据导入到Word文档中并创建表格

文章目录

    • 用Python导入CSV数据到Word表格
    • 用Python导入Excel数据到Word表格

本文所使用的方法需要用到Spire.Doc for Python,PyPI:pip install Spire.Doc

用Python导入CSV数据到Word表格

CSV文件中的表格数据可以使用Python标准库中的csv模块直接读取为字符串,然后我们再使用Spire.Doc for Python中的方法和属性利用读取的数据在Word文档中创建表格,即可实现CSV表格数据到Word文档的导入。以下是操作步骤示例:

  1. 导入所需模块。
  2. 创建Document对象从而创建一个Word文档。
  3. 使用Document.AddSection()方法再文档中创建一个节,再使用Section.AddTable()方法在节中创建一个表格。
  4. 创建表头单元格文本和数据行单元格文本的段落样式。
  5. 将表头数据写入表格并设置格式。
  6. 将其他数据写入表格并设置格式。
  7. 使用Table.AutoFit(AutoFitBehaviorType)方法设置表格自动对齐方式。
  8. 使用Document.SaveToFile()方法保存文档。
  9. 释放资源。

代码示例

from spire.doc import *
import csv# 读取CSV表格数据
with open('Sample.csv', 'r', encoding='utf-8') as file:reader = csv.reader(file)tableData = []for row in reader:tableData.append(row)# 创建Document实例
doc = Document()# 添加一个章节和一个表格
section = doc.AddSection()
table = section.AddTable()# 为表头和单元格创建段落样式
headerStyle = ParagraphStyle(doc)
headerStyle.Name = "TableHeader"
headerStyle.CharacterFormat.FontName = "Arial"
headerStyle.CharacterFormat.FontSize = 12
headerStyle.CharacterFormat.Bold = True
doc.Styles.Add(headerStyle)
cellStyle = ParagraphStyle(doc)
cellStyle.Name = "TableCell"
cellStyle.CharacterFormat.FontName = "Arial"
cellStyle.CharacterFormat.FontSize = 11
doc.Styles.Add(cellStyle)# 向表格添加表头行
headerRow = tableData[0]
tableRow = table.AddRow()
for cell in headerRow:tableCell = tableRow.AddCell()paragraph = tableCell.AddParagraph()paragraph.AppendText(cell)paragraph.ApplyStyle(headerStyle.Name)tableCell.CellFormat.VerticalAlignment = VerticalAlignment.MiddletableCell.CellFormat.Borders.BorderType(BorderStyle.Single)tableCell.CellFormat.Borders.Color = Color.get_Black()tableCell.CellFormat.Borders.LineWidth(1.8)# 向表格添加数据行
for row in tableData[1:]:tableRow = table.AddRow()for cell in row:tableCell = tableRow.Cells[row.index(cell)]paragraph = tableCell.AddParagraph()paragraph.AppendText(cell)paragraph.ApplyStyle(cellStyle.Name)tableCell.CellFormat.VerticalAlignment = VerticalAlignment.MiddletableCell.CellFormat.Borders.BorderType(BorderStyle.Single)tableCell.CellFormat.Borders.Color = Color.get_Black()tableCell.CellFormat.Borders.LineWidth(0.8)# 自动调整表格大小
table.AutoFit(AutoFitBehaviorType.AutoFitToWindow)# 保存文档
doc.SaveToFile("output/CSVToWordTable.docx", FileFormat.Docx2019)
doc.Close()

结果文档
Python导入CSV到Word

用Python导入Excel数据到Word表格

将Excel文件表格数据导入Word文档也可以用相似的操作进行。注意需要使用Spire.XLS for Python(PyPI:pip install Spire.XLS)导入Excel工作表数据,然后写入Word文档表格。以下是操作步骤:

  1. 导入所需模块。
  2. 创建Document对象从而创建一个Word文档。
  3. 使用Document.AddSection()方法再文档中创建一个节,再使用Section.AddTable()方法在节中创建一个表格。
  4. 创建Workbook对象并使用Workbook.LoadFromFile()方法载入Excel文件。
  5. 使用Workbook.Worksheets.get_Item()方法获取工作表。
  6. 创建表头单元格文本和数据行单元格文本的段落样式。
  7. 将表头数据写入表格并设置格式。
  8. 将其他数据写入表格并设置格式。
  9. 使用Table.AutoFit(AutoFitBehaviorType)方法设置表格自动对齐方式。
  10. 使用Document.SaveToFile()方法保存文档。
  11. 释放资源。

代码示例

from spire.doc import Document, ParagraphStyle, VerticalAlignment, BorderStyle, Color, FileFormat
from spire.xls import Workbook# 创建Document实例
doc = Document()# 添加一个章节和一个表格
section = doc.AddSection()
table = section.AddTable()# 创建Workbook实例并加载一个Excel文件
workbook = Workbook()
workbook.LoadFromFile("Sample.xlsx")worksheet = workbook.Worksheets.get_Item(0)# 为表头和单元格创建段落样式
headerStyle = ParagraphStyle(doc)
headerStyle.Name = "TableHeader"
headerStyle.CharacterFormat.FontName = "Arial"
headerStyle.CharacterFormat.FontSize = 12
headerStyle.CharacterFormat.Bold = True
doc.Styles.Add(headerStyle)
cellStyle = ParagraphStyle(doc)
cellStyle.Name = "TableCell"
cellStyle.CharacterFormat.FontName = "Arial"
cellStyle.CharacterFormat.FontSize = 11
doc.Styles.Add(cellStyle)print(worksheet.AllocatedRange.ColumnCount)
print(worksheet.AllocatedRange.ColumnCount)headerRow = table.AddRow()
for i in range(worksheet.AllocatedRange.ColumnCount):cell = headerRow.AddCell()paragraph = cell.AddParagraph()paragraph.AppendText(worksheet.AllocatedRange.get_Item(1, i + 1).Text)paragraph.ApplyStyle(headerStyle.Name)cell.CellFormat.VerticalAlignment = VerticalAlignment.Middlecell.CellFormat.Borders.BorderType(BorderStyle.Single)cell.CellFormat.Borders.Color = Color.get_Black()cell.CellFormat.Borders.LineWidth(1.8)for j in range(1, worksheet.AllocatedRange.RowCount):dataRow = table.AddRow()for k in range(worksheet.AllocatedRange.ColumnCount):cell = dataRow.Cells.get_Item(k)paragraph = cell.AddParagraph()paragraph.AppendText(worksheet.AllocatedRange.get_Item(j + 1, k + 1).Value)paragraph.ApplyStyle(cellStyle.Name)cell.CellFormat.VerticalAlignment = VerticalAlignment.Middlecell.CellFormat.Borders.BorderType(BorderStyle.Single)cell.CellFormat.Borders.Color = Color.get_Black()cell.CellFormat.Borders.LineWidth(0.8)# 自动调整表格大小
table.AutoFit(AutoFitBehaviorType.AutoFitToWindow)# 保存文档
doc.SaveToFile("output/ExcelTableToWord.docx", FileFormat.Docx2019)
doc.Close()

结果文档
Python导入Excel数据到Word

本文介绍了如何使用Python将CSV和Excel表格数据导入Word文档并创建表格。

更多Word文档处理技巧请前往Spire.Doc for Python教程查看。

这篇关于用Python导入CSV和Excel表格数据到Word表格的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1130633

相关文章

Python中的filter() 函数的工作原理及应用技巧

《Python中的filter()函数的工作原理及应用技巧》Python的filter()函数用于筛选序列元素,返回迭代器,适合函数式编程,相比列表推导式,内存更优,尤其适用于大数据集,结合lamb... 目录前言一、基本概念基本语法二、使用方式1. 使用 lambda 函数2. 使用普通函数3. 使用 N

Python如何实现高效的文件/目录比较

《Python如何实现高效的文件/目录比较》在系统维护、数据同步或版本控制场景中,我们经常需要比较两个目录的差异,本文将分享一下如何用Python实现高效的文件/目录比较,并灵活处理排除规则,希望对大... 目录案例一:基础目录比较与排除实现案例二:高性能大文件比较案例三:跨平台路径处理案例四:可视化差异报

python之uv使用详解

《python之uv使用详解》文章介绍uv在Ubuntu上用于Python项目管理,涵盖安装、初始化、依赖管理、运行调试及Docker应用,强调CI中使用--locked确保依赖一致性... 目录安装与更新standalonepip 安装创建php以及初始化项目依赖管理uv run直接在命令行运行pytho

Python中yield的用法和实际应用示例

《Python中yield的用法和实际应用示例》在Python中,yield关键字主要用于生成器函数(generatorfunctions)中,其目的是使函数能够像迭代器一样工作,即可以被遍历,但不会... 目录python中yield的用法详解一、引言二、yield的基本用法1、yield与生成器2、yi

深度解析Python yfinance的核心功能和高级用法

《深度解析Pythonyfinance的核心功能和高级用法》yfinance是一个功能强大且易于使用的Python库,用于从YahooFinance获取金融数据,本教程将深入探讨yfinance的核... 目录yfinance 深度解析教程 (python)1. 简介与安装1.1 什么是 yfinance?

Java整合Protocol Buffers实现高效数据序列化实践

《Java整合ProtocolBuffers实现高效数据序列化实践》ProtocolBuffers是Google开发的一种语言中立、平台中立、可扩展的结构化数据序列化机制,类似于XML但更小、更快... 目录一、Protocol Buffers简介1.1 什么是Protocol Buffers1.2 Pro

Python脚本轻松实现检测麦克风功能

《Python脚本轻松实现检测麦克风功能》在进行音频处理或开发需要使用麦克风的应用程序时,确保麦克风功能正常是非常重要的,本文将介绍一个简单的Python脚本,能够帮助我们检测本地麦克风的功能,需要的... 目录轻松检测麦克风功能脚本介绍一、python环境准备二、代码解析三、使用方法四、知识扩展轻松检测麦

Python多线程应用中的卡死问题优化方案指南

《Python多线程应用中的卡死问题优化方案指南》在利用Python语言开发某查询软件时,遇到了点击搜索按钮后软件卡死的问题,本文将简单分析一下出现的原因以及对应的优化方案,希望对大家有所帮助... 目录问题描述优化方案1. 网络请求优化2. 多线程架构优化3. 全局异常处理4. 配置管理优化优化效果1.

C#使用Spire.XLS快速生成多表格Excel文件

《C#使用Spire.XLS快速生成多表格Excel文件》在日常开发中,我们经常需要将业务数据导出为结构清晰的Excel文件,本文将手把手教你使用Spire.XLS这个强大的.NET组件,只需几行C#... 目录一、Spire.XLS核心优势清单1.1 性能碾压:从3秒到0.5秒的质变1.2 批量操作的优雅

Java高效实现Word转PDF的完整指南

《Java高效实现Word转PDF的完整指南》这篇文章主要为大家详细介绍了如何用Spire.DocforJava库实现Word到PDF文档的快速转换,并解析其转换选项的灵活配置技巧,希望对大家有所帮助... 目录方法一:三步实现核心功能方法二:高级选项配置性能优化建议方法补充ASPose 实现方案Libre