python操作Excel读写
- 格式:pdf
- 大小:298.97 KB
- 文档页数:5
python使⽤openpyxl库读写Excel表格的⽅法(增删改查操作)⽬录⼀、前⾔⼆、安装openpyxl三、openpyxl的使⽤四、结束语⼀、前⾔嗨,⼤家好,我是新发。
最近需要做个⼩⼯具,可以通过python来读写Excel,实现增删改查操作。
以前⽤的是xlrd和xlwt这两个python库,今天我要讲的是openpyxl库,我觉得openpyxl⽐xlrd和xlwt更强⼤更好⽤,话不多说,开始吧。
⼆、安装openpyxl可以直接通过命令⾏安装pip install openpyxl不过如果你下载了openpyxl,因为openpyxl还依赖了et_xmlfile库,所以你还得下载个et_xmlfile。
如果是⽤命令⾏pip install openpyxl,则会⾃动下载依赖。
安装完毕后,在python中执⾏import openpyxl如果没有报错,则说明安装成功了。
三、openpyxl的使⽤1、创建Excel⽂件演⽰代码:import openpyxlbook = openpyxl.Workbook()book.save(u'我的表格.xlsx')运⾏效果如下,⽣成了⼀个excel表格。
2、加载已存在的Excel⽂件上⾯已经创建了⼀个表格,我们可以直接加载它。
演⽰代码:import openpyxlbook = openpyxl.load_workbook(u'我的表格.xlsx')# ...book.close()3、创建sheet演⽰代码:import openpyxlbook = openpyxl.load_workbook(u'我的表格.xlsx')sheet = book.create_sheet('我的Sheet')book.save(u'我的表格.xlsx')book.close()运⾏效果如下:4、判断某个sheet是否存在演⽰代码:import openpyxlbook = openpyxl.load_workbook(u'我的表格.xlsx')if None != book[u'我的Sheet']:print('我的Sheet 存在')book.close()运⾏结果:我的Sheet 存在5、遍历所有Sheet的名称演⽰代码:import openpyxlbook = openpyxl.load_workbook(u'我的表格.xlsx')for sheet_name in book.sheetnames:print(sheet_name)book.close()运⾏结果:Sheet我的Sheet6、写⼊单元格演⽰代码:import openpyxlbook = openpyxl.load_workbook(u'我的表格.xlsx')sheet = book['Sheet']sheet.cell(1,1).value = 'name'sheet.cell(2,1).value = '姓名'sheet.cell(3,1).value = '林新发'book.save(u'我的表格.xlsx')book.close()运⾏效果7、获取单元格的各个属性值为了演⽰,我在我名字那⾥加个批注:演⽰代码:import openpyxlbook = openpyxl.load_workbook(u'我的表格.xlsx') sheet = book['Sheet']cell = sheet.cell(3,1)# 获取单元格的值print('value:%s'%cell.value)# 获取⾏号、列号print('row: %d, col: %d'%(cell.row, cell.column)) # 获取列名print('column_letter: %s'%cell.column_letter)# 单元格的坐标print('coordinate: %s'%cell.coordinate)# 单元格数据格式,n: 数字,s:字符串,d: ⽇期print('data_type: %s'%cell.data_type)# 单元格编码格式print('encoding: %s'%cell.encoding)# 单元格样式print('style: %s'%cell.style)# 单元格批注print('comment: %s'%ment)book.close()运⾏结果:value:林新发row: 3, col: 1column_letter: Acoordinate: A3data_type: sencoding: utf-8style: 常规comment: Comment: linxinfa:多才多艺 by linxinfa8、遍历单元格为了演⽰,我加多⼀写数据:⼀⾏⼀⾏遍历,演⽰代码:import openpyxlbook = openpyxl.load_workbook(u'我的表格.xlsx')sheet = book['Sheet']# ⼀⾏⼀⾏遍历for one_row in sheet.rows:for cell in one_row:print(cell, cell.value)book.close()运⾏结果:<Cell 'Sheet'.A1> name<Cell 'Sheet'.B1> profession<Cell 'Sheet'.C1> hobby<Cell 'Sheet'.A2> 姓名<Cell 'Sheet'.B2> 职业<Cell 'Sheet'.C2> 爱好<Cell 'Sheet'.A3> 林新发<Cell 'Sheet'.B3> Unity3D游戏开发⼯程师<Cell 'Sheet'.C3> 吉他、钢琴、画画、猫猫、写博客⼀列⼀列遍历,演⽰代码:import openpyxlbook = openpyxl.load_workbook(u'我的表格.xlsx')sheet = book['Sheet']# ⼀列⼀列遍历for one_col in sheet.columns:for cell in one_col:print(cell, cell.value)book.close()运⾏结果:<Cell 'Sheet'.A1> name<Cell 'Sheet'.A2> 姓名<Cell 'Sheet'.A3> 林新发<Cell 'Sheet'.B1> profession<Cell 'Sheet'.B2> 职业<Cell 'Sheet'.B3> Unity3D游戏开发⼯程师<Cell 'Sheet'.C1> hobby<Cell 'Sheet'.C2> 爱好<Cell 'Sheet'.C3> 吉他、钢琴、画画、猫猫、写博客9、最⼤⾏最⼤列为了演⽰,再加点数据。
一、介绍Excel是一款广泛使用的电子表格软件,Python是一种流行的编程语言。
结合Excel和Python的使用可以提高数据处理的效率和灵活性。
本文将介绍在Excel中使用Python的方法和技巧。
二、Python插件安装1. 打开Excel并进入“文件”菜单。
2. 选择“选项”。
3. 在选项对话框中,选择“加载项”。
4. 点击“Excel加载项”下的“转到”按钮。
5. 在“添加-Ins”对话框中,点击“浏览”。
6. 找到并选择Python插件的安装文件,点击“打开”。
7. 完成安装并重启Excel。
三、使用Python进行数据处理1. 在Excel中新建一个工作表。
2. 在需要进行数据处理的单元格输入Python函数,例如“=Py.COUNTIF(A1:A10,">5")”。
3. 按下Enter键,Excel会调用Python插件执行该函数,并在单元格中显示结果。
四、Python函数示例1. 使用Python的COUNTIF函数统计大于5的数据个数。
2. 使用Python的SUM函数计算数据的总和。
3. 使用Python的AVERAGE函数计算数据的平均值。
4. 使用Python的IF函数进行条件判断。
5. 使用Python的VLOOKUP函数进行数据查找。
五、Python脚本执行1. 在Excel中打开一个工作表。
2. 点击“开发人员”选项卡。
3. 选择“插入”下的“ActiveX 控件”。
4. 在工作表中插入一个按钮控件,右键点击该按钮并选择“属性”。
5. 在“单击”事件中绑定Python脚本文件。
6. 点击按钮执行Python脚本,实现自定义的数据处理逻辑。
六、Python图表生成1. 在Excel中选择需要生成图表的数据范围。
2. 点击“插入”选项卡中的“插入统计图表”按钮。
3. 在弹出的对话框中选择“Python图表”。
4. 根据需要选择图表类型和样式,点击确定生成图表。
python读取数据写⼊excel的四种操作Python对Excel的读写主要有:xlrd、xlwt、xlutils、openpyxl、xlsxwriter⼏种xlutils结合xlrd: 操作的是以xls后缀的excel,读取⽂件保留原格式:加:formatting_info=True常⽤⽅法:1、打开xls:open_workbook(filePath)2、 x1.sheet_names() # 获取所有sheet名字3、 x1.nsheets # 获取sheet数量4、 x1.sheets() # 获取所有sheet对象5、 x1.sheet_by_name("test") # 通过sheet名查找6、 x1.sheet_by_index(3) # 通过索引查找⼀、xlutils结合xlrd可以达到修改excel⽂件⽬的import xlrdfrom xlutils.copy import copyworkbook = xlrd.open_workbook(u'有趣装逼每⽇数据及趋势.xls',formatting_info=True)workbooknew = copy(workbook)ws = workbooknew.get_sheet(0)ws.write_merge(1,1,2,2,'测试测试',style)ws.write(3, 0, 'changed!')workbooknew.save(u'有趣装逼每⽇数据及趋势copy.xls')⼆、xlwt操作的是以xls后缀的excelimport xlwtwk = xlwt.Workbook()sheet = wk.add_sheet('sheet 1')#创建⼀个sheet1sheet.write(0,1,'test text')#第0⾏第⼀列写⼊内容wk.save('test1.xls')三、xlsxwriter 操作的是xlsximport xlsxwriterworkbook = xlsxwriter.Workbook('demo1.xlsx') # 创建⼯作簿并添加⼯作表worksheet = workbook.add_worksheet()worksheet.write('A1', 'Hello world')# 写⼊数据到A1worksheet.merge_range('B4:D4', 'Merged text', merge_format) #合并单元格,⽅法2worksheet.merge_range(3, 1, 3, 3, 'Merged Range', merge_format)format1 = worksheet.add_format({"bold": True}) #写⼊样式worksheet.write(row,1,'=SUM(B1:B4)') #写⼊公式workbook.close() # 关闭excel⽂件四、openpyxl:openpyxl可以对excel⽂件进⾏读写操作,xlsxfrom openpyxl import Workbookfrom openpyxl import load_workbookfrom openpyxl.writer.excel import ExcelWriterworkbook = load_workbook(u"新歌检索失败1477881109469.xlsx") sheetnames =workbook.get_sheet_names() #获得表单名字sheet = workbook.get_sheet_by_name(sheetnames[0])sheet['A1'] = '47'workbook.save(u"新歌检索失败1477881109469_new.xlsx")wb = Workbook()ws = wb.activews['A1'] = 4wb.save("新歌检索失败.xlsx")案例from openpyxl import Workbookfrom openpyxl import load_workbookfrom openpyxl.writer.excel import ExcelWriterworkbook = load_workbook(u'F:\excel_test.xlsx')worksheet = workbook.get_sheet_by_name('Sheet1') worksheet['A1'] = '12321321312'workbook.save(u'F:\EXCEL_new.xlsx')。
python读写excel的⼀些技巧作者:谢⼩玲链接:https:///p/347197043来源:知乎著作权归作者所有。
商业转载请联系作者获得授权,⾮商业转载请注明出处。
python处理excel的库很多,例如xlrd/xlwt/openpyxl/xlsxwriter等。
每个库都有⼀定的局限性,pandas处理excel是基于这些库的,所以集⼤成者。
个⼈还是⽐较喜欢⽤pandas, 开箱即⽤。
⾸先得导⼊包import pandas as pd⼀、⽣成excel⽂件pandas⽣成excel⽂件⾮常简单,只需要⼀⾏代码就能搞定。
data = pd.DataFrame({"col1":[1, 2, 3],"col2":[4, 5, 6],"col3":[7, 8, 9]})这跟excel的⾏列展⽰极为相似。
然后就是使⽤pandas的to_excel⽅法⽣成excel⽂件并将该内容写⼊该excel⽂件:data.to_excel("excel.xlsx", index=False)当然如果需要显⽰更多,可以查看函数的⽤法。
⼆、读取excel⽂件使⽤pandas 的读取excel也⾮常简单,直接调⽤read_excel⽅法data = pd.read_excel("excel.xlsx")结果与上⾯创建的结果⼀样col1 col2 col30 1 4 71 2 5 82 3 6 9这是最简单的读取excel,同样可以参考官⽹的参数说明来进⾏参数设置,指定sheet_name,表头等其他操作。
三、⼀次性插⼊多个sheet数据将DataFrame数据写进excel⽂件中使⽤的还是⽂章开头的to_excel⽅法,但是需要添加引擎writer,如下所⽰:data = pd.DataFrame({"col1":[1, 2, 3],"col2":[4, 5, 6],"col3":[7, 8, 9]})writer = pd.ExcelWriter("excel 样例.xlsx")data.to_excel(writer, sheet_name="这是第⼀个sheet")data.to_excel(writer, sheet_name="这是第⼆个sheet")data.to_excel(writer, sheet_name="这是第三个sheet")writer.save()writer.close()使⽤pd.ExcelWriter⽣成writer,然后就可将数据写⼊该excel⽂件了,但是写完之后必须要writer.save()和writer.close(),否则数据仍然只在数据流中,并没保存到excel⽂件中,或者使⽤with as 魔术⽅法,这样就会在数据写⼊完后⾃动保存并关闭句柄:with pd.ExcelWriter("excel 样例.xlsx") as writer:data.to_excel(writer, sheet_name="这是第⼀个sheet")data.to_excel(writer, sheet_name="这是第⼆个sheet")data.to_excel(writer, sheet_name="这是第三个sheet")四、 Pandas不覆盖现有sheet在Excel中写⼊数据在平常把pandas写⼊Excel的时候,⽤到的是df.to_excel('⽂件名.xlsx', sheet_name='sheet1'语句,⽰例如下:A = np.array([[1,2,3],[4,5,6]])df = pd.DataFrame(A)df.to_excel('test_excel.xlsx',sheet_name='A')只需要三⾏语句就可以搞定但是,如果需要把两个DataFrame数据写⼊Excel⽂件中的不同sheet中,使⽤这种⽅法就有问题了:A = np.array([[1,2,3],[4,5,6]])B = np.array([[10, 20, 30], [40, 50, 60]])df1 = pd.DataFrame(A)df2 = pd.DataFrame(B)df1.to_excel('test_excel.xlsx',sheet_name='AAA')df2.to_excel('test_excel.xlsx',sheet_name='BBB')执⾏以上程序之后,打开 “test_excel.xlsx” ,可以看到表格中只有名字为“BBB”的sheet保存下来了,⽽名字为“AAA”的sheet被覆盖掉了。
python读写excel数据--pandas详解⽬录⼀、读写excel数据1.1 读:1.2写:⼆、举例2.1 要求2.2 实现总结⼀、读写excel数据利⽤pandas可以很⽅便的读写excel数据1.1 读:data_in = pd.read_excel('M2FENZISHI.xlsx')1.2写:⾸先要创建数据框# exampledf = pd.DataFrame({'A':[0,1,2]})writer = pd.ExcelWriter('test.xlsx') #name of excel filedf.to_excel(writer, sheet_name='Sheet1') # writewriter.save() # save⼆、举例2.1 要求这个例⼦稍微有点复杂,只看读和写的部分就可以了。
例⼦要实现的⽬标为:有⼀个excel⽂件,如下:现在要将⾥⾯的化学符号中数字和字母分开,得到如下结果2.2 实现由于化学符号⾥⾯有数字和字母,要提取数字或者字母⾸先想到的是正则表达式re模块。
在读取时由于我们已经将第⼀列命名data,因此pandas可以直接只读这⼀列的提名。
读取数字可以使⽤pile实现,如:下⾯是完整实现的代码import numpy as npimport reimport pandas as pddata_in = pd.read_excel('M2FENZISHI.xlsx')['data'] #load dataprint(data_in.shape)length = len(data_in) # lengthpattern = pile(r'\d+') # find numbernum_out = []for i in range(length):temp = pattern.findall(data_in[i]) # find numberint_num = list(map(int,temp))num_out.append(int_num)num_out = np.array(num_out)print(num_out.shape)# writer data to exceldf = pd.DataFrame({'C': num_out[:, 0], 'H': num_out[:, 1], 'O': num_out[:, 2],'N': num_out[:, 3], 'P': num_out[:, 4], 'S': num_out[:, 5]})writer = pd.ExcelWriter('test.xlsx') # name of the filedf.to_excel(writer, sheet_name='Sheet1')writer.save()结果如下:总结本篇⽂章就到这⾥了,希望能够给你带来帮助,也希望您能够多多关注的更多内容!。
python使⽤xlrd模块读写Excel⽂件的⽅法本⽂实例讲述了python使⽤xlrd模块读写Excel⽂件的⽅法。
分享给⼤家供⼤家参考。
具体如下:⼀、安装xlrd模块⼆、使⽤介绍1、导⼊模块复制代码代码如下:import xlrd2、打开Excel⽂件读取数据复制代码代码如下:data = xlrd.open_workbook('excelFile.xls')3、使⽤技巧获取⼀个⼯作表复制代码代码如下:table = data.sheets()[0] #通过索引顺序获取table = data.sheet_by_index(0) #通过索引顺序获取table = data.sheet_by_name(u'Sheet1')#通过名称获取获取整⾏和整列的值(数组)复制代码代码如下:table.row_values(i)table.col_values(i)获取⾏数和列数复制代码代码如下:nrows = table.nrowsncols = table.ncols循环⾏列表数据复制代码代码如下:for i in range(nrows ):print table.row_values(i)单元格复制代码代码如下:cell_A1 = table.cell(0,0).valuecell_C4 = table.cell(2,3).value使⽤⾏列索引复制代码代码如下:cell_A1 = table.row(0)[0].valuecell_A2 = table.col(1)[0].value简单的写⼊复制代码代码如下:row = 0col = 0# 类型 0 empty,1 string, 2 number, 3 date, 4 boolean, 5 errorctype = 1 value = '单元格的值'xf = 0 # 扩展的格式化table.put_cell(row, col, ctype, value, xf)table.cell(0,0) #单元格的值'table.cell(0,0).value #单元格的值'三、Demo代码Demo代码其实很简单,就是读取Excel数据。
python处理excel实例Python是一种强大的编程语言,可以用于各种各样的任务,包括数据处理。
Excel是一个广泛使用的电子表格应用程序,用于处理和管理数据。
Python可以与Excel相结合,提供更高效和灵活的数据处理方式。
下面是一些Python处理Excel的实例:1.读取Excel文件: Python可以使用pandas包中的read_excel 函数读取Excel文件。
下面是一个简单的读取Excel文件的代码示例: import pandas as pd#读取Excel文件data = pd.read_excel('file.xlsx')print(data)2.写入Excel文件: Python也可以使用pandas包中的to_excel 函数将数据写入Excel文件。
下面是一个简单的写入Excel文件的代码示例:import pandas as pd#创建数据data = {'姓名': ['张三', '李四', '王五'], '年龄': [20, 25, 30]}#将数据转换为DataFrame格式df = pd.DataFrame(data)#将DataFrame写入Excel文件df.to_excel('file.xlsx', index=False)3.修改Excel文件: Python可以使用openpyxl包中的load_workbook函数打开Excel文件,并使用它的方法修改文件。
下面是一个简单的修改Excel文件的代码示例:from openpyxl import load_workbook#加载Excel文件wb = load_workbook('file.xlsx')#获取工作表ws = wb.active#修改单元格ws['A1'] = '姓名'ws['B1'] = '年龄'#保存文件wb.save('file.xlsx')这些实例只是Python处理Excel的基础知识,还有很多其他的功能和技巧可以使用。
python excel的读写Python是一种功能强大的编程语言,可以用于处理各种类型的数据。
在数据处理中,Excel是一种常用的工具,因此,Python提供了许多库和模块,用于读写Excel文件。
本文将介绍如何使用Python 进行Excel的读写操作。
我们需要安装一个Python库,用于处理Excel文件。
最常用的库是`openpyxl`,它提供了许多功能,包括读取和写入Excel文件。
要安装`openpyxl`库,可以使用以下命令:```pip install openpyxl```安装完成后,我们就可以开始读取和写入Excel文件了。
我们来看看如何读取Excel文件。
假设我们有一个名为`data.xlsx`的Excel文件,其中包含了一些数据。
我们可以使用以下代码来读取该文件:```pythonimport openpyxl# 打开Excel文件workbook = openpyxl.load_workbook('data.xlsx')# 选择第一个工作表sheet = workbook.active# 遍历工作表中的每一行for row in sheet.iter_rows():# 遍历每一行中的每一列for cell in row:# 输出单元格的值print(cell.value)```上述代码中,我们首先使用`load_workbook()`函数打开Excel文件。
然后,我们选择第一个工作表,并使用`iter_rows()`方法遍历工作表中的每一行。
在内部循环中,我们遍历每一行中的每一列,并输出单元格的值。
接下来,我们来看看如何写入Excel文件。
假设我们有一些数据,我们想要将其写入到一个名为`output.xlsx`的Excel文件中。
我们可以使用以下代码来实现:```pythonimport openpyxl# 创建一个新的工作簿workbook = openpyxl.Workbook()# 创建一个新的工作表sheet = workbook.active# 将数据写入工作表data = [['姓名', '年龄', '性别'],['张三', 18, '男'],['李四', 20, '女'],['王五', 22, '男']]for row in data:sheet.append(row)# 保存工作簿workbook.save('output.xlsx')```上述代码中,我们首先创建一个新的工作簿,并使用`active`属性选择第一个工作表。
Python读写EXCEL⽂件常⽤⽅法⼤全前⾔python读写excel的⽅式有很多,不同的模块在读写的讲法上稍有区别,这⾥我主要介绍⼏个常⽤的⽅式。
⽤xlrd和xlwt进⾏excel读写;⽤openpyxl进⾏excel读写;⽤pandas进⾏excel读写;参考:数据准备为了⽅便演⽰,我这⾥新建了⼀个data.xls和data.xlsx⽂件,第⼀个⼯作表sheet1区域“A1:E5”的内容如下,⽤于测试读写excel的代码:xlrd和xlwtxlrd是⼀个库,⽤于从Excel⽂件中以.xls格式读取数据和格式化信息xlwt是⼀个库,⽤于将数据和格式化信息写⼊较旧的Excel⽂件(例如:.xls)。
⽰例pip install xlrdpip install xlwt我们开始来读取⽂件的内容import xlrdimport osfile_path = os.path.dirname(os.path.abspath(__file__))base_path = os.path.join(file_path, 'data.xlsx')book = xlrd.open_workbook(base_path)sheet1 = book.sheets()[0]nrows = sheet1.nrowsprint('表格总⾏数', nrows)ncols = sheet1.ncolsprint('表格总列数', ncols)row3_values = sheet1.row_values(2)print('第3⾏值', row3_values)col3_values = sheet1.col_values(2)print('第3列值', col3_values)cell_3_3 = sheet1.cell(2, 2).valueprint('第3⾏第3列的单元格的值:', cell_3_3)接下来我们来进⾏写⼊,写⼊可以进⾏的操作太多了,我这⾥只列举了常⽤的的操作。