def func_excel():
#一、读
import xlrd
xlsx=xlrd.open_workbook('test1.xlsx') #打开工作簿
table=xlsx.sheet_by_index(0) #读第0个工作表
table=xlsx.sheet_by_name('Sheet1') #读名为'Sheet1'的工作表
print(table.cell_value(1,1)) #读第1行第1列的值
print(table.cell(1,1).value) #读第1行第1列的值
#二、写
import xlwt #最多256列
new_workbook=xlwt.Workbook() #打开工作簿
worksheet=new_workbook.add_sheet('new_test')#创建新工作簿
worksheet.write(0,0,'test') #在第0行第0列写入‘test’
new_workbook.save('test2.xls') #保存为xls格式的文件
#三、格式
from xlutils.copy import copy
import xlrd
import xlwt
style=xlwt.XFStyle()
font=xlwt.Font()
font.name='微软雅黑'
font.bold=True
font.height=360 #即18字号,要乘20像素
style.font=font
borders=xlwt.Borders()
borders.top=xlwt.Borders.THIN
borders.bottom=xlwt.Borders.THIN
borders.left=xlwt.Borders.THIN
borders.right=xlwt.Borders.THIN
style.borders=borders
alignment=xlwt.Alignment()
alignment.horz=xlwt.Alignment.HORZ_CENTER
alignment.vert=xlwt.Alignment.VERT_CENTER
style.alignment=alignment
tem_excel=xlrd.open_workbook('test2.xls',formatting_info=True)
new_excel=copy(tem_excel) #相当于tem_excel是模板
new_sheet=new_excel.get_sheet(0)
new_sheet.write(2,1,12,style)
new_sheet.write(3,1,13,style)
new_sheet.write(4,1,14,style)
new_sheet.write(5,1,15,style)
new_excel.save('new_test.xls')
import xlsxwriter as xw #不支持格式!
workbook=xw.Workbook('test3.xlsx')
sheet0=workbook.add_worksheet('sheet0')
for i in range(0,300):
sheet0.write(0,i,i)
workbook.close() #更新就是原文件!
import openpyxl #性能不是特别稳定
workbook=openpyxl.load_workbook('test4.xlsx')
sheet0=workbook['sheet0']
sheet0['B3']='5'
sheet0['B4']='5'
sheet0['B5']='5'
sheet0['B6']='77'
workbook.save('test5.xlsx') #保存为新文件
# 代码数量挺多的,特别是格式处理,所以每一次都这么写是不现实的
# python操作excel,主要是用来解决重复批处理的操作
# 例如,网站数据库中的数据定期备份或更新,我给OS写个计划任务定期执行.py文件
#最后补充一下用pandas读写
import pandas as pd
xlsx=pd.ExcelFile('test1.xlsx') #用pandas获取工作簿话柄
print(type(xlsx.parse('Sheet1'))) #再获取工作表内容此时转化为dataframe
xlsx.parse('Sheet1').to_excel('test9.xlsx')
func_excel()