利用python3進行xlsx文件的簡單操作
模塊:xlsxwriter
環境:centos/Linux
1、創建excel文件
2、創建sheet表
3、開始書寫sheet表的正文
先來一串代碼壓壓驚
#############建立xlsx文件並寫入數據 圖片################ import xlsxwriter workbook = xlsxwriter.Workbook('/home/1.xlsx') #建立一張1.xlsx表 worksheet = workbook.add_worksheet('***報告') #在1.xlsx表中建立一個名爲***報告的表 worksheet.set_column('A:D', 20) #設置A到D的橫向寬度爲各爲20(set_row設置縱向) worksheet.write('A1','Hello') #在 A1 表中寫入 Hello worksheet.write('A2','World') worksheet.write('B2','你好') worksheet.write(2,0,32) #在第二行第零列寫入數字 32 worksheet.write(3,0,32.2) #在第三行第零列寫入數字 32.2 worksheet.write(4,0,'=SUM(A3:A4)') #在第四行第零列寫入A3+A4的值 worksheet.insert_p_w_picpath('B5','./baidu.png') #在B5中添加圖片./baidu.png workbook.close() #關閉1.xlsx表
#xlsxwriter模塊的一些操作方法:
#普通操作
xlsxwriter.Workbook('excel文件名') #創建excel文件
workbook.add_worksheet(‘表名’) #創建sheet表 默認表名爲sheet
worksheet.write('A1','Hello') #在A1單元格寫入'Hello'字符串
worksheet.write(2,0,32) #在第二行第零列寫入數字32
worksheet.write_row('A1',title,format) #從A1橫向寫入title以format格式
#這裏title爲變量 可以是列表或字母等
worksheet.write_column('A2',webname,format) #從A2縱向寫入webname以format格式
#這裏webname爲變量 可以是列表或字母等
worksheet.write_formula('I'+cur_row,'=AVERAGE(B'+cur_row+':H'+cur_row+')',format_ave)
#write_formula() 寫公式
worksheet.insert_p_w_picpath('B5','./baidu.png') #在B5中添加圖片baidu.png ./b表示當前文件夾
workbook.close() #關閉文件
#表格操作
workbook.add_format([properties]) #用於創建一個新的格式對象,參數 [properties]爲 指定一個格式屬性的字典
如:bold = workbook.add_format( { 'bold' : True } )
#同樣也可以這樣
format = workbook.add_format() #創建自定義格式對象 (格式如下)
format.set_border(1) #設定邊界寬度爲1
format.set_bg_color('#cccccc') #設置背景顏色爲#ccccccc
format.set_align('center') #設置對齊方式爲 劇中
format.set_bold() #設置爲粗體
format.set_num_format('0.00') #設置數字格式爲保留兩個小數
#圖標操作
workbook.add_chart({'type':'column'}) #建立圖表 類型:柱狀圖
chart.add_series({
'categories': '=Sheet1!$B$1:$H$1', #類別爲sheet1表中B1:H1
'values' : '=Sheet1!$B$'+cur_row+':$H$'+cur_row, #值爲'B'+cur_row:'H'+cur_row
'line' : {'color' : 'black'}, #線條 黑色
'name' : 'Sheet1!$A$'+cur_row, #名字爲'A'+cur_row cur_row是變量
})
chart.set_size({'width' : 577,'height' : 288}) #設置圖表的高與寬
chart.set_title({'name' :'智遊網站業務週報'}) #設置圖表名稱
chart.set_y_axis({'name' : 'Mb/s'}) #設置圖表 y軸的名稱
worksheet.insert_chart('A10',chart) #插入圖表位置 在A10格
###################如果你還不懂 看看下面的代碼######################
################ 建立xlsx文件 並生成圖表文件 ############## #coding: utf-8 import xlsxwriter workbook = xlsxwriter.Workbook('./2.xlsx') worksheet = workbook.add_worksheet() chart = workbook.add_chart({'type':'column'}) #建立圖標 類型:柱狀圖 title = ['網站名稱','星期一','星期二','星期三','星期四','星期五','星期六','星期日','平均流量'] webname = ['網站1','網站2','網站3'] data = [ [150,152,158,149,155,145,148], [2111,222,120,10,333,11,59292], [999,111,222,111,333,44,111], ] format = workbook.add_format() #創建自定義樣式對象 format.set_border(1) #設定邊界寬度爲1 format_title = workbook.add_format() #建立一個format_title樣式(樣式內容如下) format_title.set_border(1) #設置邊界寬度爲 1 format_title.set_bg_color('#cccccc') #設置背景顏色爲#ccccccc format_title.set_align('center') #設置對齊方式爲 劇中 format_title.set_bold() #設置爲粗體 format_ave = workbook.add_format() format_ave.set_border(1) format_ave.set_num_format('0.00') #設置數字爲兩位小數 worksheet.write_row('A1',title,format_title) #從A1橫向寫入title以format_title格式 worksheet.write_column('A2',webname,format) #從A2縱向寫入webname以format格式 worksheet.write_row('B2',data[0],format) #從B2橫向寫入data[0]以foemat格式 worksheet.write_row('B3',data[1],format) worksheet.write_row('B4',data[2],format) def chart_series(cur_row): worksheet.write_formula('I'+cur_row,'=AVERAGE(B'+cur_row+':H'+cur_row+')',format_ave) chart.add_series({ 'categories': '=Sheet1!$B$1:$H$1', 'values' : '=Sheet1!$B$'+cur_row+':$H$'+cur_row, 'line' : {'color' : 'black'}, 'name' : 'Sheet1!$A$'+cur_row, }) for row in range(2,5): chart_series(str(row)) chart.set_size({'width' : 577,'height' : 288}) chart.set_title({'name' :'某網站業務週報'}) chart.set_y_axis({'name' : 'Mb/s'}) worksheet.insert_chart('A10',chart) workbook.close()
最後記得關閉文件
這是從網上找的一些xlsxwriter的方法
小白筆記 如有錯誤請提醒修改!