python 处理Excel相关库

xlrd

data = xlrd.open_workbook(".xlsx")
# data.sheet_loaded(0) data.sheet_loader(0)
data.sheets() #获取全部sheet
data.sheets()[0] #索引取值
data.sheet_by_index(0) #通过索引获取工作表
sheet = data.sheet_by_name("sheet1") #通过名称获取
data.sheet_names() #获取当前所有工作表的名称
data.nsheets #返回工作表的数量

sheet.nrows #获取当前工作表的有效行数
sheet.row(0) #获取第一行数据 
sheet.row_types(0) #获取数据类型
sheet.row(0)[2].value #获取值 sheet.row_values(0)
sheet.row_len(0) #获取几列

sheet.ncols #获取当前工作表的有效列数
sheet.col(0) #获取当前工作表的单元格对象组成的列表
sheet.col_types(0)
sheet.col(0)[1].value  # sheet.col_values(0)
sheet.col_len(0)

sheet.cell(row.index,col.index) #通过行列索引取值
sheet.cell_type(1,2) #sheet.cell(1,2).ctype
sheet.cell(1,2).value #取值 sheet.cell_value(1,2)

xlwt

#定义样式
# self.font 字体
# self.alignment 对齐方式
# self.borders 边框
# self.pattern 填充
# self.protection 保护
titlestyle = xlwt.XFStyle() #初始化样式
titlefont = xlwt.Font()
titlefont.name = "宋体"
titlefont.bold = True #加粗
titlefont.height = 11 * 20 #字号
titlefont.colour_index = 0x08 #字体颜色 titlefont.colour_index = 1
titlestyle.font = titlefont

#单元格对齐方式
cellalign = xlwt.Alignment()
cellalign.horz = 0x02
cellalign.vert = 0x01
titlestyle.alignment = cellalign

#边框
borders = xlwt.Borders()
borders.right = xlwt.Borders.DASHED #虚线
borders.bottom = xlwt.Borders.DOTTED #点线
titlestyle.borders = borders

#背景颜色
datestyle = xlwt.XFStyle()
bgcolor = xlwt.Pattern()
bgcolor.pattern = xlwt.Pattern.SOLID_PATTERN
bgcolor.pattern_fore_colour = 22 #背景颜色
datestyle.pattern = bgcolor

workbook = xlwt.Workbook()
worksheet = workbook.add_sheet("工作表名称")
worksheet.write_merge(row.index,col.index,row.index,col.index,label,style)
workbook.save("表名.xlsx")

xlsxwriter

wb = xlsxwriter.Workbook("data.xlsx")

#设置格式
cell_format = wb.add_format({"bold":True,})

cell_format1 = wb.add_format()
cell_format1.set_bold() #设置加粗
cell_format1.set_font_color("red") #文本颜色
cell_format1.set_align("center") #对齐方式

cell_format2 = wb.add_format()
cell_format2.set_bg_color = ("#808080") #设置背景颜色

#创建sheet
sheet = wb.add_worksheet("newsheet")
#写入
# sheet.write_string()
sheet.write(0,0,"2020年度",cell_format) #写入单元格数据
sheet.merge_range(1,0,2,2,"第一季度销售统计",cell_format1)
data = (["一月份",500,450],["二月份",600,450],["三月份",700,550])
sheet.write_row(3,0,["月份","预期销售额","实际的销售额"],cell_format2)

#写入数据
for index,item in enumerate(data):
    sheet.write_row(index+4,0,item)

#写入excel公式
sheet.write(7,1,"=sum(B5:B7)")
sheet.write(8,2,"=sum(C5:C7)")
sheet.write_url(9,0,"http://www.baidu.com",string="更多数据")
sheet.insert_image(10,0,"view.png")
wb.close()

#写入图表,column柱形图,line折线图
chart = wb.add_chart({"type":"column"})

chart.set_title({"name":"第一季度销售统计"})

#描述信息
chart.set_x_axis({"name":"月份"})
chart.set_y_axis({"name":"销售额"})
#数据
chart.add_series({
    "name":"预期销售额",
    "categories":"newsheet!$A$5:$A7$7",
    "values":["newsheet",4,1,6,1],
    "data_lables":["value",True]
})

chart.add_series({
    "name":"实际销售额",
    "categories":"newsheet!$A$5:$A7$7",
    "values":["newsheet",4,2,6,2]
})
sheet.insert_chart("A23",chart)
wb.close()

xlwings

import xlwings
app = xlwings.App(visible=True,add_book=False) #设置Excel窗口的可见性,True表示显示,add_book设置是否新建工作蒲,True表示新建
workbook = app.books.add() #新建工作簿
workbook.save('example.xlsx')
workbook.close() #关闭工作簿
app.quit() #退出Excel程序

app = xlwings.App(visible=True,add_book=False)
workbook = app.books.open("example.xlsx")
worksheet = workbook.sheets['sheet1'] #选中工作表sheet1
worksheet.range('A1').value = '编号'
worksheet = workbook.sheets.add("产品统计表")

app = xlwings.App(visible=False)
workbook = app.books.add()
worksheet = workbook.sheets.add('产品统计表')
worksheet.range('A1').value = '编号'
workbook.save('北京.xlsx')
workbook.close()
app.quit()
posted @ 2020-11-22 23:18  海森t  阅读(225)  评论(0)    收藏  举报