【Python學習 】Python簡單封裝xlrd和xlwt模塊進行Excel讀寫操作

一、背景概述

最近要做一些數據解析的操作,有部分數據需要解析爲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://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
————————————————

在這裏插入圖片描述
在這裏插入圖片描述

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章