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

即墨网站建设公司每日英语新闻

即墨网站建设公司,每日英语新闻,上海招聘网站建设,实验一html静态网站开发代码用于创建含50列的SQLite数据库并插入500行随机浮点数据,随后读取数据,通过ReportLab生成横向PDF表格,包含格式化(两位小数)及表头、网格线等美观样式。 # 导入所需库 import sqlite3 # 用于操作…

代码用于创建含50列的SQLite数据库并插入500行随机浮点数据,随后读取数据,通过ReportLab生成横向PDF表格,包含格式化(两位小数)及表头、网格线等美观样式。

# 导入所需库
import sqlite3                  # 用于操作SQLite数据库
import random                   # 用于生成随机数据
from reportlab.lib.pagesizes import landscape, letter  # 报表实验室库:页面尺寸(横向letter纸)
from reportlab.platypus import SimpleDocTemplate, LongTable  # 报表实验室组件:文档模板、长表格
from reportlab.lib import colors  # 报表实验室颜色库
from reportlab.lib.styles import getSampleStyleSheet  # 报表实验室预定义样式# ==================== 步骤1:创建数据库并生成测试数据 ====================
# 连接到SQLite数据库(如果不存在则自动创建)
conn = sqlite3.connect('mydatabase.db')
# 创建数据库游标对象,用于执行SQL语句
c = conn.cursor()# 动态生成50个列名(col1到col50)
columns = [f'col{i+1}' for i in range(50)]
# 构建创建表的SQL语句:50个REAL类型(浮点数)的列
create_table_sql = f'CREATE TABLE IF NOT EXISTS tab1 ({", ".join([f"{col} REAL" for col in columns])})'
# 执行SQL语句创建表(IF NOT EXISTS避免重复创建报错)
c.execute(create_table_sql)# 生成500行随机数据(每行50个0-100之间的浮点数)
data = []
for _ in range(500):  # 循环500次生成500行# 每行包含50个随机浮点数(范围0-100)row = [random.uniform(0, 100) for _ in range(50)]data.append(row)# 使用executemany批量插入数据(比循环execute更高效)
# SQL语句中的?是占位符,对应data中的每个元素
c.executemany(f'INSERT INTO tab1 VALUES ({", ".join(["?"]*50)})', data)
# 提交事务(将缓存中的数据写入数据库)
conn.commit()
# 关闭数据库连接
conn.close()# ==================== 步骤2:从数据库读取数据 ====================
# 重新连接数据库(因为之前已关闭)
conn = sqlite3.connect('mydatabase.db')
c = conn.cursor()
# 执行查询语句获取所有数据
c.execute('SELECT * FROM tab1')
# 获取所有查询结果(返回元组的列表,每个元组代表一行数据)
rows = c.fetchall()
# 获取表的列名(通过cursor.description属性,每个元素的第一个值是列名)
columns = [desc[0] for desc in c.description]
# 关闭数据库连接
conn.close()# ==================== 步骤3:生成PDF报表 ====================
# 创建PDF文档模板(横向letter纸尺寸,文件名为tab1_data.pdf)
doc = SimpleDocTemplate("tab1_data.pdf", pagesize=landscape(letter))
# 获取预定义的文本样式(用于表格内容)
styles = getSampleStyleSheet()# 格式化数据为字符串(保留2位小数,提高可读性)
formatted_rows = []
for row in rows:# 将每个单元格的浮点数格式化为"%.2f"形式的字符串formatted_row = [f"{cell:.2f}" for cell in row]formatted_rows.append(formatted_row)# 在表格顶部插入表头行(使用原始列名)
formatted_rows.insert(0, columns)# 创建长表格(支持跨页显示)
# colWidths参数设置每列宽度(这里每列固定80点,总宽度50 * 80=4000点,适合横向纸)
table = LongTable(formatted_rows, colWidths=[80] * 50)# 设置表格样式(通过元组列表定义不同区域的样式)
table.setStyle([# 表头区域样式(第0行,所有列)('BACKGROUND', (0,0), (-1,0), colors.grey),          # 背景色(灰色)('TEXTCOLOR', (0,0), (-1,0), colors.whitesmoke),     # 文字颜色(白色)('ALIGN', (0,0), (-1,-1), 'CENTER'),                 # 所有单元格文字居中('FONTNAME', (0,0), (-1,0), 'Helvetica-Bold'),       # 表头字体(加粗)('BOTTOMPADDING', (0,0), (-1,0), 12),                # 表头底部内边距(12点)# 数据行区域样式(第1行到最后一行,所有列)('BACKGROUND', (0,1), (-1,-1), colors.beige),        # 背景色(米色)# 全局网格线样式(所有单元格)('GRID', (0,0), (-1,-1), 1, colors.black),           # 网格线宽度1点,黑色# 全局垂直对齐方式(所有单元格顶部对齐)('VALIGN', (0,0), (-1,-1), 'TOP')
])# 将表格添加到PDF文档并构建输出
doc.build([table])# 输出完成提示
print("PDF已成功生成: tab1_data.pdf")

http://www.dtcms.com/wzjs/277418.html

相关文章:

  • 58同城深圳招聘网站搜索引擎优化seo论文
  • 销售网站后台维护怎么做站长工具亚洲
  • 怎么给公司做网站360网站推广费用
  • 苏州网站建设网站建设苏州网站建设优化
  • 静态网站制作价格企业网站建设的流程
  • 花乡科技园区网站建设网络优化大师下载
  • 网站建设对企业的重要性招聘网络营销推广人员
  • wordpress中文免费主题下载快速排名优化系统
  • 找人做网站域名怎么过户东莞关键词自动排名
  • 天津网站搜索排名竞价专员是做什么的
  • 如何将网站搭在阿里云东莞网络营销网络推广系统
  • 自己做网站靠什么赚钱吗东莞seo网站管理
  • 怎么开微信公众号谷歌seo技巧
  • 网站建设案例效果如何线上推广自己产品
  • 成都建设网官方网站如何提高网站的搜索排名
  • 郑州知名做网站公司广告联盟全自动赚钱系统
  • 蒙文网站建设情况汇报材料搜索引擎入口官网
  • 北京做网站公司排写文案接单平台
  • 广东新闻联播回放东莞网络推广优化排名
  • 做网站的范本南宁百度首页优化
  • wordpress 去掉p标签开鲁网站seo
  • 地域性网站推广网络销售怎么找客户
  • 中英文双语网站建设怎么在百度上添加自己的店铺地址
  • wordpress固态链接seo薪资seo
  • 做茶叶网站公司关键词推广哪家好
  • 流量套餐汇总网站网上销售
  • 企业网站开发常用的字体滕州seo
  • 我想在泉州做网站北京seo顾问推推蛙
  • 网站以下内容未做缓存百度推广费用可以退吗
  • 怎样帮人做网站挣钱做网站怎么做