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)接下来我们来进⾏写⼊,写⼊可以进⾏的操作太多了,我这⾥只列举了常⽤的的操作。
python利⽤openpyxl库操作Excel来读取、修改、写⼊测试数据⼀、openpyxl模块介绍1、openpyxl是读写Excel的python库,是⼀个⽐较综合的⼯具,能够同时读取和修改Excel⽂档2、openpyxl中有三个不同层次的类,每⼀个类都有各⾃的属性和⽅法:Workbook是⼀个excel⼯作表Worksheet是⼯作表中的表单,如图Cell就是表单中的⼀个格3、操作Excel的⼀般场景:打开或者创建⼀个Excel需要创建⼀个Workbook对象获取⼀个表则需要先创建⼀个Workbook对象,然后使⽤该对象的⽅法来得到⼀个Worksheet对象4、Workbook对象⼀个Workbook对象代表⼀个Excel⽂档,因此在操作Excel之前,都应该先创建⼀个Workbook对象。
对于⼀个已经存在的Excel⽂档,可以使⽤openpyxl模块的load_workbook函数进⾏读取,该函数包涵多个参数,但只有filename参数为必传参数。
filename 是⼀个⽂件名,也可以是⼀个打开的⽂件对象。
⼆、安装openpyxl模块在cmd命令⾏下输⼊命令:pip install openpyxl三、代码实现(在Pycharm中编写代码)1、本地新建⼀个Excel表test_case.xlsx2、复制test_case.xlsx到Pycharm:3、⽤python操作excel导⼊load_workbook库from openpyxl import load_workbook第⼀步:打开excelworkbook1=load_workbook('test_case.xlsx')第⼆步:定位表单(test_data)sheet=workbook1['test_data']第三步:操作excel的test_data表单1、定位单元格(cell),根据⾏列读取测试数据data=sheet.cell(3,2).valueprint(data)特殊说明:定位C2单元格数据{'mobilephone':'135********','pwd':'123456'}data=sheet.cell(2,3).value查看C2单元格数据类型为,但实际为dict类型print(type(data)) 输出str将str类型转化为他原来的类型dict:eval(data)print(type(eval(data))) 输出dict综上可得:excel 存储的数据,数字还是数字:int—>int、 float—>float 、其他类型—>str使⽤eval(数据) 将str类型转换为他原来的类型2、定位单元格(cell),根据⾏列值,更改原有的数据、写⼊新的测试数据,sheet.cell(3,2).value='妮妮' #更改已经存在的测试数据sheet.cell(6,3).value='⼩⼩' #在空的单元格写⼊新的测试值workbook1.save('test_case.xlsx') #保存修改3、统计⾏和列(参考上图)max_row=sheet.max_rowmax_cow = sheet.max_columnprint('最⼤的⾏值:',max_row) #输出6print('最⼤的列值:',max_cow) #输出7从excel中读取测试⽤例:1#读取每⼀条测试⽤⽤例分别保存到字典中,然后再将所有⽤例保存到列表中,如[{⽤例1},{⽤例2},{⽤例3}] 2def read_case():3 workbook1=load_workbook('test_case.xlsx')4 sheet=workbook1['test_data']5 max_row=sheet.max_row6 test_case=[]7for row in range(2,max_row+1):8 sub_data={}9 sub_data['case_id']=sheet.cell(row,1).value10 sub_data['title']=sheet.cell(row,2).value11 sub_data['data']=sheet.cell(row,3).value12 sub_data['method']=sheet.cell(row,4).value13 sub_data['expected']=sheet.cell(row,5).value14 test_case.append(sub_data)15print("读取到的所有测试⽤例:",test_case)1617 read_case()read_case。
使⽤Python操作Office——EXCEL ⾸先介绍下office win32 com接⼝,这个是MS为⾃动化提供的操作接⼝,⽐如我们打开⼀个EXCEL⽂档,就可以在⾥⾯编辑VB脚本,实现我们⾃⼰的效果。
对于这种⼀本万利的买卖,Python怎么能放过,它内置了对于win32 com接⼝的⽀持,我们可以⽅便的控制。
要想熟悉使⽤office win32 com接⼝,没有什么⽐MS提供的API⽂档更加权威了。
下⾯我们以操作EXCEL⽂档为例: ⼀、对Excel⽂件进⾏写⼊操作:#!/usr/bin/python3# -*- coding:utf-8 -*-__author__ = 'mayi'# 导⼊模块import win32com.client# 打开ExcelApplication = win32com.client.Dispatch("Excel.Application")# 或者使⽤下⾯的⽅法,使⽤启动独⽴的进程:# Application = win32com.client.DispatchEx("Excel.Application")# 后台运⾏,显⽰程序界⾯,不警告Application.Visible = 1 # 调试阶段建议打开Application.DisplayAlerts = 0# 新建⼀个⽂档Workbook = Application.Workbooks.Add()# 打开⼀个⽂档Workbook = Application.Workbooks.Open("F:\\test.xlsx")# 根据⼯作表名Base = Workbook.Worksheets("Sheet1")# 根据⼯作表顺序# Base = Workbook.Worksheets(1)# 接受当前⼯作表# Base = Workbook.ActiveSheet# 添加内容: 0.0, 0.5, 1.0Base.Cells(1, 1).Value = 'Values'Base.Cells(1, 2).Value = 0.0Base.Cells(1, 3).Value = 0.5Base.Cells(1, 4).Value = 1.0Workbook.SaveAs("F:\\test.xlsx")# 关闭⽂档Workbook.Close()# 退出ExcelApplication.Quit() ⼆、对Excel⽂件进⾏读取操作:#!/usr/bin/python3# -*- coding:utf-8 -*-__author__ = 'mayi'# 导⼊模块import win32com.client# 打开ExcelApplication = win32com.client.Dispatch("Excel.Application")# 或者使⽤下⾯的⽅法,使⽤启动独⽴的进程:# Application = win32com.client.DispatchEx("Excel.Application")# 后台运⾏,显⽰程序界⾯,不警告Application.Visible = 1 # 调试阶段建设打开Application.DisplayAlerts = 0# 打开⼀个⽂档Workbook = Application.Workbooks.Open("F:\\test.xlsx")Base = Workbook.Worksheets(1)# 接受当前⼯作表Base = Workbook.ActiveSheet#列数ncols = 0while True:cell_value = Base.Cells(1, ncols + 1).Valueif cell_value:ncols += 1else:break# ⾏数nrows = 0while True:cell_value = Base.Cells(nrows + 2, 1).Value # 第⼀⾏表头 if cell_value:for col in range(ncols):cell_key = Base.Cells(1, col + 1).Valuecell_value = Base.Cells(nrows + 2, col + 1).Valueprint(cell_key, "=>", cell_value, end = "\t")print("")nrows += 1else:break# 关闭⽂档Workbook.Close()# 退出ExcelApplication.Quit() 假设test.xlsx⽂件中的内容如下: 则,运⾏以上程序输出:序号 => 1.0 姓名 => 张三姓别 => 男地址 => 北京序号 => 2.0 姓名 => 李四姓别 => ⼥地址 => 上海序号 => 3.0 姓名 => 王五姓别 => 男地址 => 南京。
python读取 excel表格的方法Python提供了多种方法来读取Excel表格数据,以下是几种常用的方法。
1.使用pandas库读取Excel表格:pandas是一个强大的数据处理库,可以方便地读取和操作Excel 表格。
要使用pandas读取Excel表格,首先需要安装pandas库,可以使用以下命令安装:```pip install pandas```接下来,可以使用以下代码读取Excel表格数据:```pythonimport pandas as pd#读取Excel表格的数据data = pd.read_excel('filename.xlsx')#打印数据print(data)```这样可以将Excel表格中的数据读取到一个DataFrame对象中,可以方便地进行进一步的操作和分析。
2.使用openpyxl库读取Excel表格:openpyxl是一个处理Excel表格的库,可以用于读取、写入和操作Excel表格数据。
要使用openpyxl库读取Excel表格,首先需要安装openpyxl库,可以使用以下命令安装:```pip install openpyxl```接下来,可以使用以下代码读取Excel表格数据:```pythonfrom openpyxl import load_workbook#打开Excel文件workbook = load_workbook(filename='filename.xlsx')#选择第一个Sheetsheet = workbook.worksheets[0]#遍历每一行,读取数据for row in sheet.iter_rows(values_only=True):print(row)```这样可以逐行读取Excel表格中的数据,每一行都可以看作是一个包含单元格值的元组。
3.使用xlrd库读取Excel表格:xlrd是一个用于读取Excel表格的库,可以用于读取Excel文件中的数据。
详解python的xlwings库读写excel操作总结⼀、总结(点击显⽰或隐藏总结内容)⼀句话总结:xlwings 是 Python 中操作Excel的⼀个第三⽅库,⽀持.xls读写,.xlsx读写,操作⾮常简单,功能也很强⼤1、xlwings 中的逻辑:应⽤->⼯作簿->⼯作表->范围对应的代码?应⽤:⼀个应⽤(⼀个xlwings程序):app = xw.App(visible=True, add_book=False)⼯作簿(book):excel⽂件(excel程序):wb = app.books.add()⼯作表(sheet):sheet:sht = wb.sheets['sheet1']范围:⾏列:sht.range('a6').expand('table').value = [['a','b'],['d','e']]import xlwings as xw# 写到Excel中去# add_book也就是是否增加excel 的book# visible=True 表⽰操作过程是否可显⽰app = xw.App(visible=True, add_book=False)# ⼯作簿wb = app.books.add()# 页sheet1sht = wb.sheets['sheet1']# 单个值插⼊# sht.range('A1').value = '产品名称'# sht.range('B1').value = '编号'# sht.range('C1').value = '价格'# sht.range('A2').value = '不告诉你'# sht.range('B2').value = 'n110110'# sht.range('C2').value = '688.26'# sht.range('A3').value = '不告诉你1'# sht.range('B3').value = 'n1101101'# sht.range('C3').value = '688.261'# 插⼊⼀⾏# sht.range('a1').value = [1,2,3,4]# 等同于# sht.range('a1:d4').value = [1,2,3,4]# 插⼊⼀列# sht.range('a2').options(transpose=True).value = [5,6,7,8]# 同时插⼊⾏列# sht.range('a6').expand('table').value = [['a','b','c'],['d','e','f'],['g','h','i']]# 在当前⽬录下⽣成⽂件wb.save('demo1.xlsx')wb.close()app.quit()# import os# path1=os.path.abspath('.') # 表⽰当前所处的⽂件夹的绝对路径# print(path1)# path2=os.path.abspath('..') # 表⽰当前所处的⽂件夹上⼀级⽂件夹的绝对路径# print(path2)# 关于路径问题,切换到指定⽬录即可2、xlwings库向excel 插⼊值的⽅式?a、插⼊单个值:sht.range('A1').value = '产品名称'b、插⼊⼀⾏:sht.range('a1').value = [1,2,3,4] 或者 sht.range('a1:d4').value = [1,2,3,4]c、插⼊⼀列:sht.range('a2').options(transpose=True).value = [5,6,7,8]d、同时插⼊⾏列:sht.range('a6').expand('table').value = [['a','b','c'],['d','e','f'],['g','h','i']]3、xlwings库读写excel基本操作步骤?就是按照xlwings库逻辑(应⽤->⼯作簿->⼯作表->范围)操作即可,打开的记得关就好了,该读就读,该写就写app = xw.App(visible=True, add_book=False)# ⼯作簿wb = app.books.add()# 页sheet1sht = wb.sheets['sheet1']# 同时插⼊⾏列sht.range('a6').expand('table').value = [['a','b','c'],['d','e','f'],['g','h','i']]# 在当前⽬录下⽣成⽂件wb.save('demo1.xlsx')wb.close()app.quit()4、xlwings库读取excel中的数据的⽅式?print(sht.range('a1:c7').value),这样读⾏,读列,还是同时读⾏读列都可以# 读取⾏列:读取A1:C7(直接填⼊单元格范围就⾏了),得到⼀个⼆维列表print(sht.range('a1:c7').value)# 读取⾏:得⼀维列表# print(sht.range('a1:c1').value)# 读取列:得⼀维列表# print(sht.range('a1:a7').value)import xlwings as xwapp = xw.App(visible=True, add_book=False)# 显⽰警报()app.display_alerts = True# 屏幕更新(应⽤中)app.screen_updating = True# 打开⽂件wb = app.books.open('demo1.xlsx')sht = wb.sheets['sheet1']# 遍历读取单元格# column_name = ['A','B',"C"]# data_list = [] #将数据存到list中去# for i in range(3): # 遍历⾏# row_list = []# for j in range(3): #遍历列# str1 = column_name[j]+str(i+1)# a = sht.range(str1).value# row_list.append(a)# print(a)# pass# data_list.append(row_list)# pass# print(data_list)# 读取⾏列:读取A1:C7(直接填⼊单元格范围就⾏了),得到⼀个⼆维列表print(sht.range('a1:c7').value)# 读取⾏:得⼀维列表# print(sht.range('a1:c1').value)# 读取列:得⼀维列表# print(sht.range('a1:a7').value)wb.save()wb.close()app.quit()⼆、python的xlwings库读写excel操作总结1、写"""xlwings介绍xlwings 是 Python 中操作Excel 的⼀个第三⽅库,⽀持.xls读写,.xlsx读写操作⾮常简单,功能也很强⼤1、安装库pip3 install xlwings2、引⼊库import xlwings as xw3、应⽤->⼯作簿->⼯作表->范围应⽤:⼀个应⽤(⼀个xlwings程序):app = xw.App(visible=True, add_book=False)⼯作簿(book):excel⽂件(excel程序):wb = app.books.add()⼯作表(sheet):sheet:sht = wb.sheets['sheet1']范围:⾏列:sht.range('a6').expand('table').value = [['a','b'],['d','e']]xlwings.App(visible=True,add_book=False)其中参数visible(表⽰处理过程是否可视,也就是处理Excel的过程会不会显⽰出来),add_book(是否打开新的Excel程序,也就是是不是打开⼀个新的excel窗⼝)"""import xlwings as xw# 写到Excel中去# add_book也就是是否增加excel 的book# visible=True 表⽰操作过程是否可显⽰app = xw.App(visible=True, add_book=False)# ⼯作簿wb = app.books.add()# 页sheet1sht = wb.sheets['sheet1']# 单个值插⼊# sht.range('A1').value = '产品名称'# sht.range('B1').value = '编号'# sht.range('C1').value = '价格'# sht.range('A2').value = '不告诉你'# sht.range('B2').value = 'n110110'# sht.range('C2').value = '688.26'# sht.range('A3').value = '不告诉你1'# sht.range('B3').value = 'n1101101'# sht.range('C3').value = '688.261'# 插⼊⼀⾏# sht.range('a1').value = [1,2,3,4]# 等同于# sht.range('a1:d4').value = [1,2,3,4]# 插⼊⼀列# sht.range('a2').options(transpose=True).value = [5,6,7,8]# 同时插⼊⾏列# sht.range('a6').expand('table').value = [['a','b','c'],['d','e','f'],['g','h','i']]# 在当前⽬录下⽣成⽂件wb.save('demo1.xlsx')wb.close()app.quit()# import os# path1=os.path.abspath('.') # 表⽰当前所处的⽂件夹的绝对路径# print(path1)# path2=os.path.abspath('..') # 表⽰当前所处的⽂件夹上⼀级⽂件夹的绝对路径# print(path2)# 关于路径问题,切换到指定⽬录即可2、读import xlwings as xwapp = xw.App(visible=True, add_book=False)# 显⽰警报()app.display_alerts = True# 屏幕更新(应⽤中)app.screen_updating = True# 打开⽂件wb = app.books.open('demo1.xlsx')sht = wb.sheets['sheet1']# 遍历读取单元格# column_name = ['A','B',"C"]# data_list = [] #将数据存到list中去# for i in range(3): # 遍历⾏# row_list = []# for j in range(3): #遍历列# str1 = column_name[j]+str(i+1)# a = sht.range(str1).value# row_list.append(a)# print(a)# pass# data_list.append(row_list)# pass# print(data_list)# 读取⾏列:读取A1:C7(直接填⼊单元格范围就⾏了),得到⼀个⼆维列表print(sht.range('a1:c7').value)# 读取⾏:得⼀维列表# print(sht.range('a1:c1').value)# 读取列:得⼀维列表# print(sht.range('a1:a7').value)wb.save()wb.close()app.quit()到此这篇关于详解python的xlwings库读写excel操作总结的⽂章就介绍到这了,更多相关python xlwings库读写excel内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!。
Python⽂件操作(读写Excel)⽂件读写Excel1.使⽤xlrd读取excel#使⽤xlrd读取excel#1.导⼊模块import xlrd# 2. 使⽤xlrd的函数打开本地⽂件workbook=xlrd.open_workbook('案例.xlsx')#3. 获取⼯作表# sheets=workbook.sheets()#获取所有⼯作表组成list,具体某个表⽤下标# sheetOne=sheets[0]# sheetOne=workbook.sheet_by_index(0)#使⽤函数通过int 获取第⼏张# 返回⼯作表名称组成的列表sheetNames=workbook.sheet_names()sheetOne=workbook.sheet_by_name(sheetNames[0])# ⾏数row=sheetOne.nrows# 列数col=sheetOne.ncols# ⽤for遍历⾏数,输出每⾏for i in range(row):each_row=sheetOne.row_values(i)print(each_row)# ⽤for 遍历列数,输出每列for i in range(col):each_col=sheetOne.col_values(i)print(each_col)# 精确到单元格# 尝试输出第⼆⾏,第⼆列的值,读取列表的⽅式print(sheetOne.row_values(1)[1])# sheetOne.cell(row,col) 获取单元格# 单元格.value 是值# sheetOne.cell_value(row,col)直接返回值print(sheetOne.cell(8,1).value)print(sheetOne.cell_value(8,1))# ⽤循环输出所有单元格的内容# ⽅法⼀# for i in range(row):# eachrow=sheetOne.row_values(i)# for each in eachrow:# print(each)# ⽅法⼆for i in range(row):for j in range(col):print(sheetOne.cell_value(i,j))2.使⽤xlwt模块写⼊excel # 导⼊xlwt模块import xlwt# 创建⼯作簿wb=xlwt.Workbook()#创建⼯作表sheet=wb.add_sheet('newSheet')for i in range(1,10):for j in range(1,i+1):sheet.write(i,j-1,str(j)+'x'+str(i)+'='+str(i*j)) # 保存⽂件wb.save('newExcel.xls')3.使⽤xlutils模块修改excel# 使⽤xlutils模块修改 excelimport xlrdfrom xlutils.copy import copy# xlrd 读取⼯作簿wb=xlrd.open_workbook('案例.xlsx')# 复制⼀份⼯作簿,⽤来写⼊copyed=copy(wb)# 获取复制来的⼯作簿的⼯作表sheetOne=copyed.get_sheet(0)# 使⽤writr()写⼊sheetOne.write(3,0,'我是更改的内容')# 保存,如果保存的⽂件名存在则覆盖,不存在则保存个新的copyed.save('new新存的.xls')4.使⽤openpyxl操作excel#使⽤openpyxl操作excelfrom openpyxl import Workbook# 1. 实例化对象,创建⼯作簿wb=Workbook()# 2. 使⽤第⼀张⼯作表sheet=wb.active# 3. 给表取个名字sheet.title='表的名称1'# 4. 给表增加内容:sheet.append(list类型)sheet.append([1,2,3])# 5.保存⼯作簿wb.save('new1.xlsx')5.⼯作簿属性与⽅法from openpyxl import Workbook # 创建新的⼯作簿from openpyxl import load_workbook # 打开已有⼯作簿# wb = load_workbook('new1.xls') 打开不了 xls 的⽂件wb = load_workbook('F:\Python资料\data.xlsx')'''workbook 的属性:workbook.sheetnames : 所有⼯作表的名字组成的列表workbook.worksheets : 所有⼯作表组成的列表workbook.active : 默认的⼯作表(第⼀张)workbook 的⽅法:workbook.get_sheet_names() : 同 workbook.sheetnamesworkbook.get_active_sheet() : 同 workbook.activeworkbook.get_sheet_by_name(name): 根据name获取 sheetworkbook.create_sheet(sheetname,index) : 创建sheet,以及名称与index位置workbook.save(filename) : 保存'''sheet = wb.create_sheet('新的',2)sheet.append([1,2,3])wb.save('data.xlsx')6.⼯作表属性与⽅法(上)from openpyxl import load_workbookwb = load_workbook('data.xlsx')# 获取表格 wb[ 'sheetname' ]sheet = wb['新的']'''⼯作表的属性:sheet.rows :⾏数对象sheet.columns :列数对象sheet.max_row :有效的最⼤⾏数sheet.min_row :有效的最⼩⾏数sheet.max_column:有效的最⼤列数sheet.min_column:有效的最⼩列数sheet.values :所有单元格的值组成的2维列表。
python3操作读写excel并保存本地⽬录前⾔安装模块例1:创建⼀个excel ⽂件,并写⼊不同类的内容例2:写⼊时间例3:创建sheet例4 :操作单元格例5 :操作⾏/列/指定区域例6:显⽰⼩数例7:获取所有的⾏对象例8:获取所有的列对象例9:单元格类型例10:公式例11:合并单元格/取消合并单元格例12:插⼊图⽚前⾔python中操作excel的模块有很多,⽐如xlrd,xlwt,openpyxl,xlutils等。
前两个是⼀套,⼀个读⼀个写。
注意:xlwt模块,只能⽀持到excel2003,也就是扩展名为.xls的excel;xlrd模块可以⽀持读取07版本,也就是.xlsx扩展名的excel。
每个模块都有⼀些优缺点,本⽂以openpyxl模块为例来进⾏介绍。
安装模块安装openpyxl和pillow(在⽂件中插⼊图⽚时使⽤)py -3 -m pip install openpyxl==2.5.4(指定版本安装)py -3 -m pip install pillow# -*- coding: utf-8 -*-import localefrom openpyxl import Workbookwb = Workbook() #创建⽂件对象#获取第⼀个sheetws = wb.active# 将数据写⼊到指定的单元格ws['A1'] = 42 #写⼊数字ws['B1'] = "⾃动化"+"automation test" #写⼊中⽂ws.append([1, 2, 3]) #写⼊多个单元格#保存为a.xlsxwb.save("a.xlsx")运⾏结果⼆、写⼊时间from openpyxl import Workbookimport datetimeimport timeimport localewb = Workbook() #创建⽂件对象ws = wb.active #获取第⼀个sheetws['A2'] = datetime.datetime.now() #写⼊⼀个当前时间#写⼊⼀个⾃定义的时间格式locale.setlocale(locale.LC_CTYPE, 'chinese')ws['A3'] =time.strftime("%Y年%m⽉%d⽇ %H时%M分%S秒",time.localtime())# Save the filewb.save("sample.xlsx")运⾏结果三、创建sheet前⾯的例⼦都是操作默认创建的sheet,也可以⽤create_sheet()⽅法⽣成指定名称的sheet进⾏操作。
标题:Python操作Excel表格中合并单元格的读写方法在实际工作中,我们经常会用到Excel表格对数据进行处理和分析。
而在处理Excel表格时,经常会遇到合并单元格这样的情况,这就需要我们使用Python来进行操作。
本文将介绍如何使用Python对Excel表格中合并的单元格进行读写操作。
一、为什么要对合并单元格进行读写操作?1. 表格的美观性和易读性合并单元格是为了使表格更加美观,且更容易阅读。
但在进行数据处理和分析时,处理合并单元格的数据就显得尤为重要了。
2. 数据的准确性在处理包含合并单元格的Excel表格时,如果我们不对合并单元格进行处理,很可能会导致数据统计的错误,这就需要我们使用Python 进行操作了。
二、使用Python操作Excel表格中合并单元格的读写方法1. 打开Excel表格我们需要使用Python中的openpyxl库来打开Excel表格。
代码如下所示:import openpyxlwb = openpyxl.load_workbook('example.xlsx')sheet = wb['Sheet1']2. 读取合并单元格的数据在处理合并单元格的数据时,我们需要根据合并单元格的范围来获取数据。
在openpyxl库中,可以使用merged_cells属性来获取合并单元格的范围,然后再逐一获取每个合并单元格的数据。
代码如下所示:merged_ranges = sheet.merged_cells.rangesfor merged_range in merged_ranges:for row in merged_range:for cell in row:print(cell.value)3. 写入数据到合并单元格在处理完数据后,如果需要将处理后的数据写入到合并单元格中,同样也需要根据合并单元格的范围来写入数据。
代码如下所示:merged_ranges = sheet.merged_cells.rangesfor merged_range in merged_ranges:for row in merged_range:for cell in row:cell.value = 'new data'4. 保存Excel表格我们需要使用Python来保存Excel表格。