main
HuangHai 4 months ago
parent 2fc8b1e7ed
commit 82d7c37a79

@ -2,24 +2,25 @@ import pandas as pd
from openpyxl.styles import Font, PatternFill, Alignment, Border, Side
from openpyxl.utils import get_column_letter
def save_to_excel(data, filename):
"""
将数据集保存为格式化的Excel文件
参数
data - 数据集 (列表字典格式例如[{"列1": "值1", "列2": "值2"}, ...])
data - 数据集 (asyncpg.Record 列表)
filename - 输出文件名 (需包含.xlsx扩展名)
"""
# 将 asyncpg.Record 转换为字典列表
data_dict = [dict(record) for record in data]
# 转换数据为DataFrame
df = pd.DataFrame(data)
df = pd.DataFrame(data_dict)
# 创建Excel写入对象
with pd.ExcelWriter(filename, engine='openpyxl') as writer:
df.to_excel(writer, index=False, sheet_name='Sheet1')
# 获取工作表对象
#workbook = writer.book
worksheet = writer.sheets['Sheet1']
# 定义边框样式
@ -59,7 +60,7 @@ def save_to_excel(data, filename):
len(str(column)) # 列名的长度
)
# 计算列宽,确保在 10 到 120 之间
column_width = min(max(max_length + 2, 10)*2, 120) # 加 2 是为了留出一些空白
column_width = min(max(max_length + 2, 10) * 2, 120) # 加 2 是为了留出一些空白
# 设置列宽
column_letter = get_column_letter(idx + 1)
worksheet.column_dimensions[column_letter].width = column_width

Loading…
Cancel
Save