一、背景概述
最近要做一些數據解析的操作,有部分數據需要解析爲Excel,順便在網上學了一下Python的xlwt模塊,並進行了簡單的封裝,可以完成讀寫操作,代碼在這裏記錄一下。
版權聲明:本文爲【歐陽鵬】原創,依據 CC BY-SA 4.0 許可證進行授權,歡迎轉載,轉載請附上出處鏈接及本聲明。【博客地址 http://blog.csdn.net/ouyang_peng】
二、xlrt讀取Excel封裝
# -*- coding: utf-8 -*-
import xlrd
import xlwt
class ReadExcel:
"""
此類專門用於讀取Excel
"""
# __workbook用於存放excel文件的對象
__workbook = None
# __sheet用於存放excel文件中一張表格的對象,文件操作時主要操作該對象
__sheet = None
# __print是一個調試參數,當該參數設置爲True時打印讀取的內容
__print = False # 用於開啓全局打印
def __init__(self, file_name, sheet_name):
"""
類的初始化方法,在類初始化的時候被調用
:param file_name:excel的文件名
:param sheet_name:excel中需要訪問的sheet名。
"""
ReadExcel.__workbook = xlrd.open_workbook(file_name)
# 根據sheet名稱獲取sheet內容
ReadExcel.__sheet = ReadExcel.__workbook.sheet_by_name(sheet_name)
def get_number_of_rows(self):
"""
獲取表格中內容的最大行數
:return: __number_of_row
"""
__rows_number = self.__sheet.nrows
if ReadExcel.__print is True:
print(__rows_number)
return __rows_number
def get_number_of_cols(self):
"""
獲取表格中內容的最大列數
:return: __number_of_cols
"""
__cols_number = self.__sheet.ncols
if ReadExcel.__print is True:
print(__cols_number)
return __cols_number
def get_value_of_row(self, row_index):
"""
獲取某一行的所有值構成的列表
:param row_index: 行號
:return: 行內容組成的列表
"""
__row_value = self.__sheet.row_values(row_index)
if ReadExcel.__print is True:
print(__row_value)
return __row_value
def get_value_of_col(self, col_index):
"""
獲取某一列的所有值構成的列表
:param col_index: 列號
:return: 列中內容組成的列表
"""
__col_value = self.__sheet.col_values(col_index)
if ReadExcel.__print is True:
print(__col_value)
return __col_value
def get_value_of_cell(self, row_index, col_index):
"""
獲取某一個單元格中的值
:param row_index: 行號
:param col_index: 列號
:return: 單元格中的內容
"""
# 第row_index行 col_index列是內容
__cell_value = self.__sheet.cell(row_index, col_index).value
if ReadExcel.__print is True:
print(__cell_value)
return __cell_value
def get_value_of_area(self, row_start_index, row_end_index, col_start_index, col_end_index):
"""
獲取某一個區域的所有值構成的二維列表
:param row_start_index: 該區域行號的起始值
:param row_end_index: 該區域行號的結束值
:param col_start_index: 該區域列號的起始值
:param col_end_index: 該區域列號的結束值
:return: 返回該區域的值構成的列表
"""
__area_value = []
__all_content = self.get_all_content()
for row in range(row_start_index, row_end_index):
__data_temp = []
for col in range(col_start_index, col_end_index):
__data_temp.append(__all_content[row][col])
__area_value.append(__data_temp)
return __area_value
def get_all_content(self):
"""
獲取表格中所有的內容構成的二維列表
:return: 返回表格中所有內容的列表
"""
__all_content = []
__rows_num = self.get_number_of_rows()
for temp in range(__rows_num):
__value_of_row = self.get_value_of_row(temp)
__all_content.append(__value_of_row)
if ReadExcel.__print is True:
print(__all_content)
return __all_content
def get_title_of_row(self, row_index, col_start_index, col_end_index):
"""
獲取行標題構成的列表
:param row_index: 標題所在的行號
:param col_start_index: 標題所在的列起始號
:param col_end_index: 標題所在的列終止號
:return: 返回行標題的列表
"""
__row_value = self.get_value_of_row(row_index)
__row_title = __row_value[col_start_index:col_end_index]
if ReadExcel.__print is True:
print(__row_title)
return __row_title
def get_title_of_col(self, col_index, row_start_index, row_end_index):
"""
獲取列標題構成的列表
:param col_index: 標題所在的列號
:param row_start_index: 標題所在的行起始號
:param row_end_index: 標題所在的行終止號
:return: 返回列標題的列表
"""
__col_value = self.get_value_of_col(col_index)
__col_title = __col_value[row_start_index:row_end_index]
if ReadExcel.__print is True:
print(__col_title)
return __col_title
三、xlwt讀取Excel封裝
# -*- coding: utf-8 -*-
import xlrd
import xlwt
class WriteExcel:
"""
此類專門用於寫入Excel
"""
# __workbook用於存放excel文件的對象
__workbook = None
# __sheet用於存放excel文件中一張表格的對象,文件操作時主要操作該對象
__sheets = {}
# __style表示的是python寫入excel中的格式。
__style = None
def __init__(self):
WriteExcel.__workbook = xlwt.Workbook(encoding='utf-8')
WriteExcel.__style = xlwt.XFStyle() # 初始化樣式
def addSheet(self, sheet_name):
"""
添加單元格
:param sheet_name: 單元格名稱
"""
self.__sheets[sheet_name] = WriteExcel.__workbook.add_sheet(sheet_name)
@staticmethod
def set_col_width(col_index, one_row_font_num, sheet_name):
"""
設置列寬和自動換行 256是以0字符作爲衡量單位,一行存放one_row_font_num個字符
:param col_index: 列的索引值
:param one_row_font_num: 一列包含的字符數
:param sheet_name: 單元格名稱
:return:
"""
WriteExcel.__sheets[sheet_name].col(col_index).width = 256 * one_row_font_num
WriteExcel.__style.alignment.wrap = 1
@staticmethod
def set_style(name='Arial', height=200, colour_index=0x7FFF, bold=False, underline=False, italic=False,
borders=True, borders_colour_index=0x40,
backgroud_color=0x01, alignment=None):
"""
設置單元格格式
:param name: 字體名
:param height: 字體高度
:param colour_index: 字體顏色
:param bold: 字體是否加粗
:param borders: 是否有邊框
:param borders_colour_index:邊框顏色
:param backgroud_color: 單元格背景顏色
:param alignment:單元格對齊方式
:return: 單元格格式
"""
# 初始化樣式
__style = xlwt.XFStyle()
# 字體設置
__font = xlwt.Font() # 爲樣式創建字體
# 字體
__font.name = name
__font.height = height
# 顏色索引
__font.colour_index = colour_index
# 顏色也可以從定義好的map中去取
# __font.colour_index = xlwt.Style.colour_map['red']
# 加粗
__font.bold = bold
# 下劃線
__font.underline = underline
# 斜體
__font.italic = italic
__style.font = __font
# 設置單元格背景顏色
pattern = xlwt.Pattern()
# 設置背景顏色的模式
pattern.pattern = xlwt.Pattern.SOLID_PATTERN
# 背景顏色
pattern.pattern_fore_colour = backgroud_color
__style.pattern = pattern
# 設置單元格的對齊方式,默認水平垂直居中
if alignment is None:
__alignment = xlwt.Alignment()
# 水平居中
__alignment.horz = xlwt.Alignment.HORZ_CENTER
# 垂直居中
__alignment.vert = xlwt.Alignment.VERT_CENTER
__style.alignment = __alignment
else:
__style.alignment = alignment
# 邊框設置
if borders is True:
__borders = xlwt.Borders()
__borders.left = xlwt.Borders.MEDIUM
__borders.right = xlwt.Borders.MEDIUM
__borders.top = xlwt.Borders.MEDIUM
__borders.bottom = xlwt.Borders.MEDIUM
__borders.left_colour = borders_colour_index
__borders.right_colour = borders_colour_index
__borders.top_colour = borders_colour_index
__borders.bottom_colour = borders_colour_index
__style.borders = __borders
WriteExcel.__style = __style # 修改字體格式
return __style
def save_excel(self, path):
"""
保存表格
:param path: 保存的路徑
"""
self.__workbook.save(path)
def put_value_in_cell(self, value, row_index, col_index, sheet_name):
"""
把字符串填入表格的單元格
:param value:要填入的值
:param row_index:要填入值所在的行號
:param col_index:要填入值所在的列號
:param sheet_name 單元格名稱
"""
self.__sheets[sheet_name].write(row_index, col_index, value, WriteExcel.__style)
def put_value_in_row(self, value, row_index, col_index, sheet_name):
"""
把列表橫向填入表格
:param value: 需要填入的列表
:param row_index: 填入列表所在的起始行
:param col_index: 填入列表所在的起始列
:param sheet_name: sheet名
"""
__row = row_index
__col = col_index
for __value in value:
self.put_value_in_cell(__value, __row, __col, sheet_name)
__col = __col + 1
def put_value_in_col(self, value, row_index, col_index, sheet_name):
"""
把列表縱向填入表格
:param value: 需要填入的列表
:param row_index: 填入列表所在的起始行
:param col_index: 填入列表所在的起始列
:param sheet_name: sheet名
:return:
"""
__row = row_index
__col = col_index
for __value in value:
self.put_value_in_cell(__value, __row, __col, sheet_name)
__row = __row + 1
def put_value_in_area(self, area_value, row_index, col_index, sheet_name, one_row_font_num=30):
"""
把一個數組按順序填入表格
:param area_value: 需要填入的數組 (某一個區域的所有值構成的二維列表)
:param row_index: 填入數組所在的起始行
:param col_index: 填入數組所在的起始列
:param sheet_name: sheet名
:param one_row_font_num 單元格的寬度
:return:
"""
__row = row_index
__col = col_index
# 遍歷傳入進來的某一個區域的所有值構成的二維列表,每次遍歷得到一行的數據
for __row_list in area_value:
# 遍歷每一行數據 然後依次一個單元格一個單元格的寫入數據 ,每次遍歷得到一行中的某一列的數據
for cell_value in __row_list:
self.set_col_width(__col, one_row_font_num, sheet_name)
self.put_value_in_cell(cell_value, __row, __col, sheet_name)
__col = __col + 1
__col = col_index # 換行
__row = __row + 1
四、簡單測試一下
完整代碼如下所示,簡單的封裝了讀取Excel和寫入Excel的兩個對象,分別是ReadExcel和WriteExcel類。
4.1 完整源代碼
# -*- coding: utf-8 -*-
"""
參考博客地址:
https://github.com/python-excel/xlwt
https://pypi.org/project/xlwt/
https://xlwt.readthedocs.io/en/latest/
https://xlwt.readthedocs.io/en/latest/api.html
https://blog.csdn.net/hh199203/article/details/86309110
https://www.jb51.net/article/154535.htm
https://www.cnblogs.com/hushaojun/p/7792550.html
https://www.crifan.com/python_xlwt_set_cell_background_color/
https://www.cnblogs.com/xiaodingdong/p/8012282.html
https://blog.csdn.net/weixin_44065501/article/details/88874643
https://www.cnblogs.com/xiao-apple36/p/9603499.html
"""
import xlrd
import xlwt
class ReadExcel:
"""
此類專門用於讀取Excel
"""
# __workbook用於存放excel文件的對象
__workbook = None
# __sheet用於存放excel文件中一張表格的對象,文件操作時主要操作該對象
__sheet = None
# __print是一個調試參數,當該參數設置爲True時打印讀取的內容
__print = False # 用於開啓全局打印
def __init__(self, file_name, sheet_name):
"""
類的初始化方法,在類初始化的時候被調用
:param file_name:excel的文件名
:param sheet_name:excel中需要訪問的sheet名。
"""
ReadExcel.__workbook = xlrd.open_workbook(file_name)
# 根據sheet名稱獲取sheet內容
ReadExcel.__sheet = ReadExcel.__workbook.sheet_by_name(sheet_name)
def get_number_of_rows(self):
"""
獲取表格中內容的最大行數
:return: __number_of_row
"""
__rows_number = self.__sheet.nrows
if ReadExcel.__print is True:
print(__rows_number)
return __rows_number
def get_number_of_cols(self):
"""
獲取表格中內容的最大列數
:return: __number_of_cols
"""
__cols_number = self.__sheet.ncols
if ReadExcel.__print is True:
print(__cols_number)
return __cols_number
def get_value_of_row(self, row_index):
"""
獲取某一行的所有值構成的列表
:param row_index: 行號
:return: 行內容組成的列表
"""
__row_value = self.__sheet.row_values(row_index)
if ReadExcel.__print is True:
print(__row_value)
return __row_value
def get_value_of_col(self, col_index):
"""
獲取某一列的所有值構成的列表
:param col_index: 列號
:return: 列中內容組成的列表
"""
__col_value = self.__sheet.col_values(col_index)
if ReadExcel.__print is True:
print(__col_value)
return __col_value
def get_value_of_cell(self, row_index, col_index):
"""
獲取某一個單元格中的值
:param row_index: 行號
:param col_index: 列號
:return: 單元格中的內容
"""
# 第row_index行 col_index列是內容
__cell_value = self.__sheet.cell(row_index, col_index).value
if ReadExcel.__print is True:
print(__cell_value)
return __cell_value
def get_value_of_area(self, row_start_index, row_end_index, col_start_index, col_end_index):
"""
獲取某一個區域的所有值構成的二維列表
:param row_start_index: 該區域行號的起始值
:param row_end_index: 該區域行號的結束值
:param col_start_index: 該區域列號的起始值
:param col_end_index: 該區域列號的結束值
:return: 返回該區域的值構成的列表
"""
__area_value = []
__all_content = self.get_all_content()
for row in range(row_start_index, row_end_index):
__data_temp = []
for col in range(col_start_index, col_end_index):
__data_temp.append(__all_content[row][col])
__area_value.append(__data_temp)
return __area_value
def get_all_content(self):
"""
獲取表格中所有的內容構成的二維列表
:return: 返回表格中所有內容的列表
"""
__all_content = []
__rows_num = self.get_number_of_rows()
for temp in range(__rows_num):
__value_of_row = self.get_value_of_row(temp)
__all_content.append(__value_of_row)
if ReadExcel.__print is True:
print(__all_content)
return __all_content
def get_title_of_row(self, row_index, col_start_index, col_end_index):
"""
獲取行標題構成的列表
:param row_index: 標題所在的行號
:param col_start_index: 標題所在的列起始號
:param col_end_index: 標題所在的列終止號
:return: 返回行標題的列表
"""
__row_value = self.get_value_of_row(row_index)
__row_title = __row_value[col_start_index:col_end_index]
if ReadExcel.__print is True:
print(__row_title)
return __row_title
def get_title_of_col(self, col_index, row_start_index, row_end_index):
"""
獲取列標題構成的列表
:param col_index: 標題所在的列號
:param row_start_index: 標題所在的行起始號
:param row_end_index: 標題所在的行終止號
:return: 返回列標題的列表
"""
__col_value = self.get_value_of_col(col_index)
__col_title = __col_value[row_start_index:row_end_index]
if ReadExcel.__print is True:
print(__col_title)
return __col_title
class WriteExcel:
"""
此類專門用於寫入Excel
"""
# __workbook用於存放excel文件的對象
__workbook = None
# __sheet用於存放excel文件中一張表格的對象,文件操作時主要操作該對象
__sheets = {}
# __style表示的是python寫入excel中的格式。
__style = None
def __init__(self):
WriteExcel.__workbook = xlwt.Workbook(encoding='utf-8')
WriteExcel.__style = xlwt.XFStyle() # 初始化樣式
def addSheet(self, sheet_name):
"""
添加單元格
:param sheet_name: 單元格名稱
"""
self.__sheets[sheet_name] = WriteExcel.__workbook.add_sheet(sheet_name)
@staticmethod
def set_col_width(col_index, one_row_font_num, sheet_name):
"""
設置列寬和自動換行 256是以0字符作爲衡量單位,一行存放one_row_font_num個字符
:param col_index: 列的索引值
:param one_row_font_num: 一列包含的字符數
:param sheet_name: 單元格名稱
:return:
"""
WriteExcel.__sheets[sheet_name].col(col_index).width = 256 * one_row_font_num
WriteExcel.__style.alignment.wrap = 1
@staticmethod
def set_style(name='Arial', height=200, colour_index=0x7FFF, bold=False, underline=False, italic=False,
borders=True, borders_colour_index=0x40,
backgroud_color=0x01, alignment=None):
"""
設置單元格格式
:param name: 字體名
:param height: 字體高度
:param colour_index: 字體顏色
:param bold: 字體是否加粗
:param borders: 是否有邊框
:param borders_colour_index:邊框顏色
:param backgroud_color: 單元格背景顏色
:param alignment:單元格對齊方式
:return: 單元格格式
"""
# 初始化樣式
__style = xlwt.XFStyle()
# 字體設置
__font = xlwt.Font() # 爲樣式創建字體
# 字體
__font.name = name
__font.height = height
# 顏色索引
__font.colour_index = colour_index
# 顏色也可以從定義好的map中去取
# __font.colour_index = xlwt.Style.colour_map['red']
# 加粗
__font.bold = bold
# 下劃線
__font.underline = underline
# 斜體
__font.italic = italic
__style.font = __font
# 設置單元格背景顏色
pattern = xlwt.Pattern()
# 設置背景顏色的模式
pattern.pattern = xlwt.Pattern.SOLID_PATTERN
# 背景顏色
pattern.pattern_fore_colour = backgroud_color
__style.pattern = pattern
# 設置單元格的對齊方式,默認水平垂直居中
if alignment is None:
__alignment = xlwt.Alignment()
# 水平居中
__alignment.horz = xlwt.Alignment.HORZ_CENTER
# 垂直居中
__alignment.vert = xlwt.Alignment.VERT_CENTER
__style.alignment = __alignment
else:
__style.alignment = alignment
# 邊框設置
if borders is True:
__borders = xlwt.Borders()
__borders.left = xlwt.Borders.MEDIUM
__borders.right = xlwt.Borders.MEDIUM
__borders.top = xlwt.Borders.MEDIUM
__borders.bottom = xlwt.Borders.MEDIUM
__borders.left_colour = borders_colour_index
__borders.right_colour = borders_colour_index
__borders.top_colour = borders_colour_index
__borders.bottom_colour = borders_colour_index
__style.borders = __borders
WriteExcel.__style = __style # 修改字體格式
return __style
def save_excel(self, path):
"""
保存表格
:param path: 保存的路徑
"""
self.__workbook.save(path)
def put_value_in_cell(self, value, row_index, col_index, sheet_name):
"""
把字符串填入表格的單元格
:param value:要填入的值
:param row_index:要填入值所在的行號
:param col_index:要填入值所在的列號
:param sheet_name 單元格名稱
"""
self.__sheets[sheet_name].write(row_index, col_index, value, WriteExcel.__style)
def put_value_in_row(self, value, row_index, col_index, sheet_name):
"""
把列表橫向填入表格
:param value: 需要填入的列表
:param row_index: 填入列表所在的起始行
:param col_index: 填入列表所在的起始列
:param sheet_name: sheet名
"""
__row = row_index
__col = col_index
for __value in value:
self.put_value_in_cell(__value, __row, __col, sheet_name)
__col = __col + 1
def put_value_in_col(self, value, row_index, col_index, sheet_name):
"""
把列表縱向填入表格
:param value: 需要填入的列表
:param row_index: 填入列表所在的起始行
:param col_index: 填入列表所在的起始列
:param sheet_name: sheet名
:return:
"""
__row = row_index
__col = col_index
for __value in value:
self.put_value_in_cell(__value, __row, __col, sheet_name)
__row = __row + 1
def put_value_in_area(self, area_value, row_index, col_index, sheet_name, one_row_font_num=30):
"""
把一個數組按順序填入表格
:param area_value: 需要填入的數組 (某一個區域的所有值構成的二維列表)
:param row_index: 填入數組所在的起始行
:param col_index: 填入數組所在的起始列
:param sheet_name: sheet名
:param one_row_font_num 單元格的寬度
:return:
"""
__row = row_index
__col = col_index
# 遍歷傳入進來的某一個區域的所有值構成的二維列表,每次遍歷得到一行的數據
for __row_list in area_value:
# 遍歷每一行數據 然後依次一個單元格一個單元格的寫入數據 ,每次遍歷得到一行中的某一列的數據
for cell_value in __row_list:
self.set_col_width(__col, one_row_font_num, sheet_name)
self.put_value_in_cell(cell_value, __row, __col, sheet_name)
__col = __col + 1
__col = col_index # 換行
__row = __row + 1
if __name__ == "__main__":
# 讀取 test_r.xlsx 的數據並打印
sheet_r = ReadExcel("test_r.xlsx", "Sheet1")
# 讀取第一行,從第一個讀取到第六個
row_title = sheet_r.get_title_of_row(0, 0, 6)
print(row_title)
# 讀取第二列,從第二個讀取到第六個
col_title = sheet_r.get_title_of_col(1, 1, 6)
print(col_title)
# 從第1行讀取到第11行,從第1列讀取到第7列
data = sheet_r.get_value_of_area(0, 11, 0, 7)
print(data)
# 將 讀取到的 test_r.xlsx 數據 寫入 test_w.xls 中
sheet_w = WriteExcel()
sheet_name = "測試".decode("utf-8")
sheet_w.addSheet(sheet_name)
# 字體不加粗
WriteExcel.set_style(bold=False)
# 從第一行 第二列開始寫數據
sheet_w.put_value_in_row(row_title, 0, 1, sheet_name)
# 從第二行 第一列開始寫數據
sheet_w.put_value_in_col(col_title, 1, 0, sheet_name)
__alignment = xlwt.Alignment()
# 水平左對齊
__alignment.horz = xlwt.Alignment.HORZ_LEFT
# 垂直居中
__alignment.vert = xlwt.Alignment.VERT_CENTER
# 取出兩個顏色索引
colour_index_font = xlwt.Style.colour_map['red'] # 紅色
# colour_index_backgroud = xlwt.Style.colour_map['black'] # 黑色
colour_index_backgroud = xlwt.Style.colour_map['ivory'] # 乳白色
# 字體加粗,斜體,字體顏色爲紅色,單元格背景爲黑色
WriteExcel.set_style(bold=True, italic=True, colour_index=colour_index_font, backgroud_color=colour_index_backgroud,
alignment=__alignment)
# 從第二行 第二列開始寫數據,每個單元格寬度爲15
sheet_w.put_value_in_area(data, 2, 2, sheet_name, 15)
sheet_w.save_excel("test_w.xls")
如上代碼所示:讀取test_r.xlsx的Excel數據,並且寫入到一個新的Excel文檔test_w.xls中。
4.2 運行效果
- test_r.xlsx
test_r.xlsx文檔內容如下所示:
- test_w.xls
生成出來的test_w.xls文檔內容如下所示:
4.3 運行結果分析一下
4.3.1 分析讀Excel操作
運行完之後,讀取Excel打印出來的日誌如下所示:
C:\Python27\python.exe "C:/Code Python/xxx/excelUtils.py"
[u'A', u'B', u'C', u'D', u'E', u'F']
[u'B0', u'B1', u'B2', u'B3', u'B4']
[[u'A', u'B', u'C', u'D', u'E', u'F', u'G'], [u'A0', u'B0', u'C0', u'D0', u'E0', u'F0', u'G0'], [u'A1', u'B1', u'C1', u'D1', u'E1', u'F1', u'G1'], [u'A2', u'B2', u'C2', u'D2', u'E2', u'F2', u'G2'], [u'A3', u'B3', u'C3', u'D3', u'E3', u'F3', u'G3'], [u'A4', u'B4', u'C4', u'D4', u'E4', u'F4', u'G4'], [u'A5', u'B5', u'C5', u'D5', u'E5', u'F5', u'G5'], [u'A6', u'B6', u'C6', u'D6', u'E6', u'F6', u'G6'], [u'\u6b27\u9633\u9e4f', u'\u6b27\u9633\u9e4f', u'\u6b27\u9633\u9e4f', u'\u6b27\u9633\u9e4f', u'\u6b27\u9633\u9e4f', u'\u6b27\u9633\u9e4f', u'\u6b27\u9633\u9e4f'], [u'ouyangpeng', u'ouyangpeng', u'ouyangpeng', u'ouyangpeng', u'ouyangpeng', u'ouyangpeng', u'ouyangpeng'], [u'csdn', u'csdn', u'csdn', u'csdn', u'csdn', u'csdn', u'csdn']]
Process finished with exit code 0
第一條打印: 讀取第一行,從第一個讀取到第六個
讀取出來的數據是
[u'A', u'B', u'C', u'D', u'E', u'F']
第二條打印: 讀取第二列,從第二個讀取到第六個
讀取出來的數據是
[u'B0', u'B1', u'B2', u'B3', u'B4']
第三條打印: 從第1行讀取到第11行,從第1列讀取到第7列
讀取出來的數據是
[[u'A', u'B', u'C', u'D', u'E', u'F', u'G'], [u'A0', u'B0', u'C0', u'D0', u'E0', u'F0', u'G0'], [u'A1', u'B1', u'C1', u'D1', u'E1', u'F1', u'G1'], [u'A2', u'B2', u'C2', u'D2', u'E2', u'F2', u'G2'], [u'A3', u'B3', u'C3', u'D3', u'E3', u'F3', u'G3'], [u'A4', u'B4', u'C4', u'D4', u'E4', u'F4', u'G4'], [u'A5', u'B5', u'C5', u'D5', u'E5', u'F5', u'G5'], [u'A6', u'B6', u'C6', u'D6', u'E6', u'F6', u'G6'], [u'\u6b27\u9633\u9e4f', u'\u6b27\u9633\u9e4f', u'\u6b27\u9633\u9e4f', u'\u6b27\u9633\u9e4f', u'\u6b27\u9633\u9e4f', u'\u6b27\u9633\u9e4f', u'\u6b27\u9633\u9e4f'], [u'ouyangpeng', u'ouyangpeng', u'ouyangpeng', u'ouyangpeng', u'ouyangpeng', u'ouyangpeng', u'ouyangpeng'], [u'csdn', u'csdn', u'csdn', u'csdn', u'csdn', u'csdn', u'csdn']]
4.3.2 分析寫Excel操作
文件名爲:test_w.xls
sheet名爲:測試
從第一行 第二列開始寫數據:
從第二行 第一列開始寫數據:
從第二行 第二列開始寫數據,每個單元格寬度爲15:
水平左對齊,垂直居中,字體加粗,斜體,字體顏色爲紅色,單元格背景爲黑色
就這樣基本的操作封裝好了,如果有其他的操作可以另外再添加功能。
五、參考鏈接
-
https://www.crifan.com/python_xlwt_set_cell_background_color/
-
https://blog.csdn.net/weixin_44065501/article/details/88874643
作者:歐陽鵬 歡迎轉載,與人分享是進步的源泉!
轉載請保留原文地址:https://ouyangpeng.blog.csdn.net/article/details/100925405
☞ 本人QQ: 3024665621
☞ QQ交流羣: 123133153
☞ github.com/ouyangpeng
☞ [email protected]
————————————————
版權聲明:本文爲CSDN博主「歐陽鵬」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://ouyangpeng.blog.csdn.net/article/details/100700954
————————————————