您的位置:首页 > 编程语言 > Python开发

Python操作Excel表格

2018-06-11 20:38 435 查看

 

使用xlwt + xlrd + xlutils操作Excel表格

 

# coding: utf-8
import xlwt
from xlrd import open_workbook
from xlutils.copy import copy
import os
import sys
reload(sys)
sys.setdefaultencoding('utf-8')

def save_excel(my_list):
path = os.getcwd()
file_path = path + os.sep + 'grade.xls'
style_bold = xlwt.easyxf('font: color-index red, bold on')
header_style = style_bold
workbook = xlwt.Workbook(encoding='utf-8')
book_sheet = workbook.add_sheet('Sheet 1', cell_overwrite_ok=True)
i = 0
for x, item in enumerate(my_list):
book_sheet.write(i, x, item, header_style)
workbook.save(file_path)

def xlutil(my_list):
try:
path = os.getcwd()
file_path = path + os.sep + 'grade.xls'
rexcel = open_workbook(file_path, formatting_info=True)  # 用wlrd提供的方法读取一个excel文件
rows = rexcel.sheets()[0].nrows  # 用wlrd提供的方法获得现在已有的行数
print "rows:", rows
first_row = ['title', 'pub_time', 'aid', 'view', 'danmaku', 'favorite', 'coin', 'share', 'author', 'sex']
style_bold = xlwt.easyxf('font: color-index red, bold on')
header_style = style_bold
excel = copy(rexcel)  # 用xlutils提供的copy方法将xlrd的对象转化为xlwt的对象
table = excel.get_sheet(0)  # 用xlwt对象的方法获得要操作的sheet
if rows == 0:
for y, value in enumerate(first_row):
table.write(rows, y, value.decode('utf-8'), header_style)
excel.save(file_path)
else:
for y, value in enumerate(my_list):
table.write(rows, y, value.decode('utf-8'))
excel.save(file_path)
except Exception, e:
print e
print "请先关闭grade.xls"

if __name__ == '__main__':
# path = os.getcwd()
# file_path = path + os.sep + 'grade.xls'
# w = xlwt.Workbook(encoding='utf-8')
# ws = w.add_sheet('Sheet 1', cell_overwrite_ok=True)
# w.save(file_path)
my_list = ['34', '2017-10-16 14:42', '44', '67', '1', '3', '0', '0', '69', '33']
# save_excel(my_list)
xlutil(my_list)

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: