欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 美食 > 使用Python+docx+sqlite3将Word表格内容写入sqlite表中

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

2024/10/24 18:24:19 来源:https://blog.csdn.net/limengshi138392/article/details/141666199  浏览:    关键词:使用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()

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com