python自动化报表定时跑_Python实现自动化报表

# -*- coding : utf-8 -*-

import xlwt # 写xls

import xlrd # 读xls

from xlutils.copy import copy

file_tb1 = xlwt.Workbook() # 创建工作簿

sheet1 = file_tb1.add_sheet(u'test1', cell_overwrite_ok=True)

sheet2 = file_tb1.add_sheet(u'test2', cell_overwrite_ok=True)

row = 0

temp = [u'学校', u'学院', u'专业', u'学号', '姓名', '总成绩']

for v_pos, v in enumerate(temp): # enumerate枚举一个可遍历的数据对象,返回序号和对象

sheet1.write(row, v_pos, v)

row += 1

sheet1.write(row, 0, u'华南理工大学') # 在Excel中用row,col定位表格

sheet1.write(row, 1, '计算机学院')

sheet1.write(row, 2, u'计算机科学与技术')

sheet1.write(row, 3, u'3548241456')

sheet1.write(row, 4, u'路人甲')

sheet1.write(row, 5, u'413')

# 向工作表单元格写入公式

sheet1.write_formula(0, 0, '=B3 + B4')

sheet1.write_formula('A7', '{=SUM(A1:B1*A2:B2)}')

sheet1.write(5, 0, u'总分统计')

sheet2.write_merge(1, 2, 3, 4, u'合并文本') # 合并单元格

# write_merge(x, x + h, y, y + w, string, sytle)

file_tb1.save('F://temp_data/xlwt_tutorial_9.xls')

file_tb1 = xlrd.open_workbook(r'F://temp_data/xlwt_tutorial_9.xls')

print(file_tb1.sheet_names()) # 然后输出所有sheet名

for i in range(len(file_tb1.sheet_names())): # 得到表格里的所有的sheet

sheet_n = file_tb1.sheet_by_index(i)

sheet1 = file_tb1.sheet_by_index(0) # 打开第一个sheet

sheet2 = file_tb1.sheet_by_name(u'test2') # 打开名字为 test2 的sheet

# 输出sheet的名称,行数,列数

print(sheet1.name, sheet1.nrows, sheet1.ncols)

print(sheet2.name, sheet2.nrows, sheet2.ncols)

# 获取单元格内容

print(sheet1.cell(1, 0).value)

# 获取单元格内容的数据类型

print(sheet1.cell(1, 1).ctype)

# ctype : 0 empty, 1 string, 2 number, 3 date, 4 boolean, 5 error

# 如果想对原有的Excel文件的基础上进行编辑,就要用到xlutils包了,因为xlwt,xlrd是只写和只读

# 用xlrd打开一个文档,后采用xlutils中copy功能把文档拷贝,然后进行编辑保存即可

file_tb1 = xlrd.open_workbook(r'F://temp_data/xlwt_tutorial.xls')

file_tb2 = copy(file_tb1) # 将 file_tb1 拷贝到 file_tb2

sheet1 = file_tb2.get_sheet(0) # 打开sheet1

print(sheet1.name)

sheet1.write(6, 6, 'change') # 更改(7,7)单元格数据(原先有数据则会覆盖)

file_tb2.save('F://temp_data/xlwt_tutorial_copy.xls') # 保存为xls文件(不能是xlsx)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值