python 爬虫前奏十 openpyxl模块的使用

    科技2022-07-12  122

    发现python很好玩,它会提供单纯的读、写的模块,所以我需要一个可以读写的模块

     XlsxWriterxlrdopenpyxl介绍可以创建XLSX文件用来读取xls文件,是python-excel的三大模块可以读写XLSX、XLSM文件读×√√写√×√.xls×√×.xlsx√×√大文件√×√

     注释:Excel 2003 即XLS文件有大小限制即65536行256列,所以不支持大文件,而Excel 2007以上即XLSX文件的限制则为1048576行16384列

    1、基本功能

    1.1、导入模块

    #安装模块 pip install openpyxl #导入模块 import openpyxl

    1.2、新建

    #不存在会创建 workbook = openpyxl.Workbook() workbook.save('C:/Users/admin/Desktop/5.xlsx')

    1.3、打开

    workbook= openpyxl.load_workbook('C:/Users/admin/Desktop/1.xlsx)

    1.4、sheet操作

    # 获取名为Sheet1的工作表 sheet1 = workbook['sheet1'] # 新建sheet表 workbook.create_sheet(index=1, title="sheet2") # 得到工作簿的所有工作表名 sheet_names = workbook.sheetnames print(sheet_names) # 根据表名删除sheet表 workbook.remove(workbook[sheet_names[2]])

    1.5、读操作

    # 获取最大列数 cols = sheet1.max_column # 获取最大行数 rows = sheet1.max_row # 获取单元格A1值 A1_value = sheet1['A1'].value # 获取单元格A1列号 A1_column = sheet1['A1'].column # 获取单元格A1行号 A1_row = sheet1['A1'].row # 获取第一行第一列的单元格值 A1 = sheet1.cell(row=1, column=1).value

    1.6、写操作

    # ------------------ 写入数据 ------------------ # 修改第一行第一列的单元格的值 sheet1.cell(row=1, column=1, value="111") # 直接修改B1单元格的值 sheet1["B1"] = "2020-10-10" # 修改sheet1的表名为test_sheet sheet1.title = "test_sheet"

    1.7、表格样式调整

    # ------------------ 表格样式调整 ------------------ # 表格样式支持:字体、颜色、模式、边框、数字格式等 sheet1["A1"].font = openpyxl.styles.Font(name="宋体", size=24, italic=True, color="00CCFF", bold=True) # B1单元格 水平上下居中 sheet1["B1"].alignment = openpyxl.styles.Alignment(horizontal="center", vertical="center") # 第一行高度设置为30 sheet1.row_dimensions[1].height = 30 # A列的宽度设置为35 sheet1.column_dimensions["A"].width = 35

    1.8、保存退出

    # 注意 excel被手动打开后,保存会失败 workbook.save('C:/Users/admin/Desktop/1.xlsx') workbook.close()

    1.9、完整代码

    import openpyxl import openpyxl.styles # 打开已有的excel workbook= openpyxl.load_workbook('C:/Users/admin/Desktop/1.xlsx') # 获取名为Sheet1的工作表 sheet_names = workbook.sheetnames sheet1 = workbook[sheet_names[0]] # 新建sheet表 workbook.create_sheet(index=1, title="sheet2") # 得到工作簿的所有工作表名 sheet_names = workbook.sheetnames print(sheet_names) # 根据表名删除sheet表 workbook.remove(workbook[sheet_names[1]]) # ------------------ 读取数据 ------------------ # 获取最大列数 cols = sheet1.max_column # 获取最大行数 rows = sheet1.max_row # 获取单元格A1值 A1_value = sheet1['A1'].value # 获取单元格A1列号 A1_column = sheet1['A1'].column # 获取单元格A1行号 A1_row = sheet1['A1'].row # 获取第一行第一列的单元格值 A1 = sheet1.cell(row=1, column=1).value print(cols) print(rows) print(A1_value) print(A1_column) print(A1_row) print(A1) # 获取A列的所有数据 list_column_A = [] for A_Cell in sheet1["A"]: list_column_A.append(A_Cell.value) print(list_column_A) # 获取第1行的所有数据 list_row_1 = [] for row in sheet1[1]: list_row_1.append(row.value) print(list_row_1) # 读取所有数据 list_sheet1_all = [] for row in sheet1.rows: for cell in row: # 按行循环获取所有的值 list_sheet1_all.append(cell.value) print(list_sheet1_all) # ------------------ 写入数据 ------------------ # 修改第一行第一列的单元格的值 sheet1.cell(row=1, column=1, value="111") # 直接修改B1单元格的值 sheet1["B1"] = "2020-10-10" # 修改sheet1的表名为test_sheet sheet1.title = "test_sheet" # ------------------ 表格样式调整 ------------------ # 表格样式支持:字体、颜色、模式、边框、数字格式等 # A1单元格 等线24号加粗斜体,字体颜色浅蓝色 sheet1["A1"].font = openpyxl.styles.Font(name="宋体", size=24, italic=True, color="00CCFF", bold=True) # B1单元格 水平上下居中 sheet1["B1"].alignment = openpyxl.styles.Alignment(horizontal="center", vertical="center") # 第一行高度设置为30 sheet1.row_dimensions[1].height = 30 # C列的宽度设置为35 sheet1.column_dimensions["A"].width = 35 workbook.save('C:/Users/admin/Desktop/1.xlsx') # 注意 excel被手动打开后,保存会失败 workbook.close()

     

    Processed: 0.009, SQL: 8