from docx import Document
from peewee import *
import os
创建一个文档对象,加载word模板。
word = Document('/data/demo/eg.docx')
创建数据库对象,加载数据库的数据。
db_file = SqliteDatabase('xx_earth.db')
class earthquake(Model):
id= CharField(null=False,primary_key=True,unique=True)
did = CharField(null=False,max_length=50)
o_time = CharField(null=False,max_length=100)
m = CharField(null=False,max_length=20)
epi_lat = CharField(null=False,max_length=30)
epi_lon = CharField(null=False,max_length=30)
epi_depth = CharField(null=False,max_length=30)
class Meta:
database = db_file
db_file.connect()
True
连接到数据库并创建表
def initialize_database():
try:
db_file.create_tables([earthquake])
print("Database and table created successfully!")
except Exception as e:
print(f"Error creating database: {e}")
finally:
if not db_file.is_closed():
db_file.close()
initialize_database()
Database and table created successfully!
读取数据库的数据,准备存入word内。 查询震级高于4级的信息,保存进表一内。
data=earthquake.select().where(earthquake.m>4)
num=1
table0=word.tables[0]
for i in data:
table0.cell(num,0).text=i.m
table0.cell(num,1).text=i.o_time
table0.cell(num,2).text=i.did
table0.cell(num,3).text=i.epi_lat
table0.cell(num,4).text=i.epi_lon
table0.cell(num,5).text=i.epi_depth
num+=1
将震级小于等于4级的数据,降序保存到表二:
data=earthquake.select().where(earthquake.m<=4)
num1=1
table1=word.tables[1]
for i in data:
table1.cell(num1,0).text=i.m
table1.cell(num1,1).text=i.o_time
table1.cell(num1,2).text=i.did
table1.cell(num1,3).text=i.epi_lat
table1.cell(num1,4).text=i.epi_lon
table1.cell(num1,5).text=i.epi_depth
num1+=1
word.save('xx_abc.docx')