font(字體類):字號、字體顏色、下劃線等json
fill(填充類):顏色等ide
border(邊框類):設置單元格邊框測試
alignment(位置類):對齊方式字體
number_format(格式類):數據格式ui
protection(保護類):寫保護excel
from openpyxl import Workbook wb = Workbook() #建立文件對象 wb.remove(wb["sheet"]) wb.remove(self.wb["sheet"]) #移除掉第一個sheet ws = wb.create_sheet("{0}蒸汽壓力記錄表".format(self.sample_name), 0) #生成所含列總數的大寫字母 upper_string_list = string.ascii_uppercase[:self.all_col] wb.save("e:\\sample.xlsx")
from openpyxl import Workbook wb = Workbook() ws1 = wb.create_sheet("Mysheet") #建立一個sheet ws1["A1"]=123.11 ws1["B2"]="你好" d = ws1.cell(row=4, column=2, value=10) print ws1["A1"].value print ws1["B2"].value print d.value # Save the file wb.save("e:\\sample.xlsx")
import uuid import string import json import time import os import base64 from openpyxl.workbook import Workbook from openpyxl.styles import Font, Alignment, Side, Border from Lib.Utils import Utils class ExportReport: def __init__(self, start_time, water_temp, test_people, sample_name, pressure_value, pressure_list,*args, **kwargs): """ :param start_time: 實驗開始時間 :param water_temp: 水浴溫度 :param test_people: 試驗人 :param sample_name: 樣品名稱 :param pressure_value: 最終壓力 :param args: 實驗過程壓力記錄列表 :param kwargs: """ self.start_time = start_time self.water_temp = str(water_temp)+' ℃' self.test_people = test_people self.sample_name = sample_name self.pressure_value = pressure_value self.all_col = 5+len(pressure_list) #一共多少列 self.pressure_record = pressure_list #第六列到最後一列的數據列表 #全部的數據列 self.data_list = [ self.start_time, self.water_temp, self.test_people,self.sample_name, self.pressure_value ] self.data_list.extend(self.pressure_record) self.col_list = ["開始時間", "水浴溫度", "測試人", "樣品名稱", "最終壓力值"] # base64轉化爲圖片 # self.bs64 = bs64 # self.img_path = Utils.change_base64_as_img(self.bs64) self.wb = Workbook() #self.wb.remove(self.wb["sheet"]) self.ws = self.wb.create_sheet("{0}蒸汽壓力記錄表".format(self.sample_name), 0) #生成所含列總數的大寫字母 self.upper_string_list = string.ascii_uppercase[:self.all_col] # 水平對齊,居中對齊 self.alignment_style = Alignment(horizontal='center', vertical='center') #定義border 邊框樣式 left, right, top, bottom = [Side(style='thin', color='000000')]*4 self.border_style = Border(left=left, right=right, top=top, bottom=bottom) #定義字體 self.font_size = Font(size=9) for col in self.upper_string_list: self.ws.column_dimensions[col].width = 20 #建立表頭第一行 def create_row1(self): #把全部列合併 self.ws.merge_cells(start_row=1, end_row=1, start_column=1, end_column=self.all_col) #寫入值 # self.ws.cell(row=1, column=1).value = value self.ws.cell(row=1, column=1).value = "{0}蒸汽壓力記錄表".format(self.sample_name) self.ws['A1'].alignment = self.alignment_style self.ws['A1'].font = Font(size=16, bold=True) self.create_row2_3() def create_row2_3(self): #把前五列,二三行單元格合併,並寫入值 for col in range(1, len(self.col_list)+1): self.ws.merge_cells(start_row=2, end_row=3, start_column=col, end_column=col) col_str = self.upper_string_list[col-1]+"2" self.ws[col_str] = self.col_list[col-1] self.ws[col_str].alignment = self.alignment_style self.ws[col_str].font = Font(size=12, bold=True) #把第二行第六列開始到最後列合併 self.ws.merge_cells(start_row=2, end_row=2, start_column=len(self.col_list)+1, end_column=self.all_col) col_str = self.upper_string_list[len(self.col_list)]+"2" self.ws[col_str] = "實驗過程壓力記錄" self.ws[col_str].alignment = self.alignment_style self.ws[col_str].font = Font(size=12, bold=True) #第三行第六列開始到最後列寫入值 for index, col_ltr in enumerate(self.upper_string_list[5:]): col_str = col_ltr+'3' self.ws[col_str] = "第{0}次壓力記錄".format(index+1) self.ws[col_str].alignment = self.alignment_style self.ws[col_str].font = Font(size=12, bold=True) def add_data(self): #第四行開始寫入數據,全部數據居中對齊,水平居中 for index, col in enumerate(self.upper_string_list): col_str = col+"4" self.ws[col_str] = self.data_list[index] self.ws[col_str].alignment = self.alignment_style self.ws[col_str].font = Font(size=12, bold=True) def create(self,value=None): if value: self.ws.cell(row=1, column=1).value = value self.create_row1() self.add_data() def save(self, filename): try: self.wb.save(filename) except: self.wb.save(filename[:-5] + str('_' + Utils.getFileName()) + filename[-5:]) # 關閉excel self.close() def close(self): self.wb.close() if __name__ == '__main__': er = ExportReport(1, 2, 3, 4, 5, ['x', 's', 's', 'b','w']) er.create() er.wb.save('17表.xlsx')