python——处理excel

---恢复内容开始---

1. python处理excel的包有很多

xlrd(读取excel内容)

xlwt(写excel内容)

openpyxl(读写)

xlutils(保持excel格式不变的情况操作内容)

xlswing (效率高)

pandas(数据处理,分析)

具体的性能对比我还没有试过,只是目前比较流行的操作excel的包为以上几种

2. 保持excel格式的方法,两种

xlutils我觉得更加的方便一些,但是它只能支持03版的excel,就是xls结尾的文件,07版的xlsx则不支持。

xlutils的copy方法

tem_excel = xlrd.open_workbook(self.templatePath, formatting_info=True)
new_excel = copy(tem_excel)
new_sheet = new_excel.get_sheet(self.headerConfDict.get("targetsheet"))

new_sheet, new_excel = self.getTemplateSheet()
for rownumber, rowvalue in wholeDict.items():
for x in rowvalue:
if (x.get("format") == None):
new_sheet.write(rownumber, x.get("index"), x.get("value"))
else:
       #设置颜色
        
new_sheet.write(rownumber, x.get("index"), x.get("value"), self.setStyle())
new_excel.save(filename)


style = xlwt.XFStyle()
pattern = xlwt.Pattern()
pattern.pattern = Pattern.SOLID_PATTERN
pattern.pattern_fore_colour = Style.colour_map['red']
style.pattern = pattern
return style
 

openpyxl

wb = openpyxl.load_workbook("Template.xlsx")
sheetnames = wb.get_sheet_names()
sheet = wb.get_sheet_by_name(sheetnames[0])
sheet.cell(row=2,column=2,value=123456)
#设置颜色
fill = PatternFill('solid', fgColor='FF0000')
sty1 = NamedStyle(name='sty1', fill=fill)
new_sheet.cell(row=rownumber + 1, column=x.get("index") + 1).style = sty1
print(sheet)
wb.save("test.xlsx")


3. xlrd的基本操作
import xlrd
xlrd.workbook("filepath")

猜你喜欢

转载自www.cnblogs.com/emmaduan/p/11712285.html