在数字化时代,很多人工作中经常和excel打交道。本文介绍Python操作excel的脚本,让你工作效率更高。
安装openpyxl模块
加载库
创建文件和工作表
在工作表指定单元格写数据
设置单元格的颜色字体
在excel中写入表格

Python操作excel主要用到了openpyxl模块,按win+R打开cmd,在里面输入
pip3 install openpyxl
接着加载库,并设置数据存放的文件夹。
import osimport randomimport openpyxlimport numpy as npimport pandas as pdfrom openpyxl.drawing.image import Imagefrom openpyxl.worksheet.table import Table,TableStyleInfofrom openpyxl.styles import Border, Side, PatternFill, Font, GradientFill, Alignmentfrom openpyxl.utils import get_column_letter,column_index_from_string#导入库os.chdir(r'G:/python/13_python处理excel/')#设置文件存放的地址

接着创建文件和工作表,代码如下:
wb = openpyxl.Workbook()#创建工作表wb_sht1 = wb.create_sheet(title='插入数据', index=0)wb_sht2 = wb.create_sheet(title='插入表格', index=0)wb.save('cs.xlsx')wb.close()
得到结果:

也可以用函数删除工作表,代码如下:
wb.remove(wb_sht1)

接着在工作表中写数据,代码如下:
wb = openpyxl.Workbook()wb_sht1 = wb.create_sheet(title='插入数据', index=0)wb_sht2 = wb.create_sheet(title='插入表格', index=0)for r_index in range(1, 10):for c_index in range(1, 10):wb_sht1.cell(row=r_index, column=c_index, value=r_index)
两层for循环控制在相应位置写下行号,得到结果:


接着在A1单元格测试设置字体大小、颜色、边框线条,代码如下:
thin = Side(border_style="thin", color="FF0000")double = Side(border_style="double", color="000000")wb_sht1_A1 = wb_sht1["A1"]wb_sht1_A1.font = Font(b=True, color='008000')wb_sht1_A1.alignment = Alignment(horizontal='left', vertical='center')wb_sht1_A1.border = Border(top=double, left=thin, right=thin, bottom=double)wb_sht1_A1.fill = PatternFill("solid", fgColor="0000FF")


最后在excel中写入表格,代码如下:
os.chdir(r'G:/python/13_python处理excel/')#设置文件存放的地址wb = openpyxl.Workbook()#创建工作表wb_sht1 = wb.create_sheet(title='插入数据', index=0)wb_sht2 = wb.create_sheet(title='插入表格', index=0)date = pd.DataFrame(np.random.randint(20, 50, (4, 4)))col_name = ['col1', 'col2', 'col3', 'col4']date.columns = col_namewb_sht2.append(col_name)for row in range(date.shape[0]):wb_sht2.append(list(date.iloc[row, ]))table = Table(id=1, displayName='excel_table3', ref='A1:D4')wb_sht2.add_table(table)wb.save('cs1.xlsx')wb.close()

如果想在excel中设置好格式,只把数据粘贴到文档中,还可以调用xlwings模块进行excel操作。


扫一扫关注我
19967879837
投稿微信号、手机号