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

使用Python+docx+sqlite3将Word表格内容写入sqlite表中

一、使用Python+docx+sqlite3将Word表格内容写入sqlite表中 

# 导入所需的库
import docx
import sqlite3
import random
import os# 创建一个空白的word文档对象
doc = docx.Document()# 在文档中插入一个表格,行数为5+1(表头),列数为3
table = doc.add_table(rows=6, cols=3)
table.style = "Table Grid"# 获取表格的第一行,即表头,并设置单元格的文本内容
header = table.rows[0].cells
header[0].text = '产品名'
header[1].text = '厂商'
header[2].text = '价格'# 定义一些随机生成数据的函数
def random_product():# 随机返回一个产品名,可以根据需要修改或扩充products = ['手机', '电脑', '平板', '耳机', '键盘', '鼠标', '显示器', '路由器', '充电器', '音箱']return random.choice(products)def random_vendor():# 随机返回一个厂商名,可以根据需要修改或扩充vendors = ['苹果', '华为', '小米', '联想', '戴尔', '惠普', '索尼', '三星', '罗技', '飞利浦']return random.choice(vendors)def random_price():# 随机返回一个价格,单位为元,保留两位小数return round(random.uniform(100, 10000), 2)# 遍历表格的剩余行,即表的内容,并填充随机生成的数据
for row in table.rows[1:]:cells = row.cellscells[0].text = random_product()cells[1].text = random_vendor()cells[2].text = str(random_price())# 保存word文档为data.docx
doc.save('data.docx')# 打开data.docx文档,并获取第一个表格对象
doc = docx.Document('data.docx')
table = doc.tables[0]if os.path.exists('data.db'):# 删除文件os.remove('data.db')# 创建一个sqlite数据库data.db,并获取游标对象
conn = sqlite3.connect('data.db')
cur = conn.cursor()# 在数据库中创建一个products表,字段与word中的表头相同,价格字段为小数类型,其他为字符串类型
cur.execute('''
CREATE TABLE products (产品名 TEXT,厂商 TEXT,价格 REAL
)
''')# 遍历word表格的内容行,将每一行的数据插入到products表中
for row in table.rows[1:]:cells = row.cellsproduct = cells[0].textvendor = cells[1].textprice = float(cells[2].text)cur.execute('''INSERT INTO products (产品名, 厂商, 价格)VALUES (?, ?, ?)''', (product, vendor, price))# 提交数据库操作,并关闭连接
conn.commit()
conn.close()

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 区块链入门
  • Postman注册使用
  • 七、Centos安装LDAP--Docker版--已失败
  • 探索分析文档布局,基于YOLOv5全系列【n/s/m/l/x】参数模型开发构建大规模文档数据集DocLayNet场景下文档图像布局智能检测分析识别系统
  • elasticsearch之我不会的
  • Docker 部署 net6 webapi项目
  • 【ElasticSearch】基本命令
  • 【功能自动化】自动识别测试用例
  • zdppy+vue3+onlyoffice文档管理系统实战 20240829上课笔记 Python验证码框架完成
  • Python统计FreeMind测试用例数量
  • C语言阴阳迷宫
  • SparkShop开源商城 uploadFile 任意文件上传漏洞复现
  • LabVIEW项目中硬件选型与长期需求沟通
  • OSI七层模型中的数据链路层
  • 图像数据处理25
  • 【跃迁之路】【733天】程序员高效学习方法论探索系列(实验阶段490-2019.2.23)...
  • 2019.2.20 c++ 知识梳理
  • 2019年如何成为全栈工程师?
  • Akka系列(七):Actor持久化之Akka persistence
  • java8-模拟hadoop
  • MYSQL如何对数据进行自动化升级--以如果某数据表存在并且某字段不存在时则执行更新操作为例...
  • SAP云平台运行环境Cloud Foundry和Neo的区别
  • SQLServer插入数据
  • TCP拥塞控制
  • 测试开发系类之接口自动化测试
  • 发布国内首个无服务器容器服务,运维效率从未如此高效
  • 分布式熔断降级平台aegis
  • 给自己的博客网站加上酷炫的初音未来音乐游戏?
  • 诡异!React stopPropagation失灵
  • 看图轻松理解数据结构与算法系列(基于数组的栈)
  • 爬虫模拟登陆 SegmentFault
  • 译自由幺半群
  • media数据库操作,可以进行增删改查,实现回收站,隐私照片功能 SharedPreferences存储地址:
  • 完善智慧办公建设,小熊U租获京东数千万元A+轮融资 ...
  • ​2021半年盘点,不想你错过的重磅新书
  • ​香农与信息论三大定律
  • #include到底该写在哪
  • (JSP)EL——优化登录界面,获取对象,获取数据
  • (Redis使用系列) Springboot 实现Redis 同数据源动态切换db 八
  • (Redis使用系列) Springboot 使用redis的List数据结构实现简单的排队功能场景 九
  • (附源码)计算机毕业设计ssm基于Internet快递柜管理系统
  • (接口封装)
  • (算法)区间调度问题
  • (五)大数据实战——使用模板虚拟机实现hadoop集群虚拟机克隆及网络相关配置
  • (学习日记)2024.04.10:UCOSIII第三十八节:事件实验
  • (自用)仿写程序
  • (自用)网络编程
  • (总结)Linux下的暴力密码在线破解工具Hydra详解
  • *ST京蓝入股力合节能 着力绿色智慧城市服务
  • .halo勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .NET 5种线程安全集合
  • .Net 知识杂记
  • .net6使用Sejil可视化日志
  • .Net7 环境安装配置
  • .NETCORE 开发登录接口MFA谷歌多因子身份验证