python学习笔记-excel用例输入
Python使用xlwings往excel中写入一行数据的两种方法
Python使用xlwings往excel中写入一行数据的两种方法使用xlwings库可以很方便地往Excel中写入数据。
下面介绍两种常用的写入一行数据的方法。
方法一:使用Range函数写入一行数据```import xlwings as xw# 打开指定的Excel文件wb = xw.Book('文件路径.xlsx')# 选择要写入数据的Sheetsht = wb.sheets['Sheet1']#定义要写入的数据data = ['项目A', '项目B', '项目C', '项目D']#写入数据sht.range('A1').expand(.value = data# 关闭Excel文件wb.savewb.close```方法二:使用扩展方式写入一行数据```import xlwings as xw# 打开指定的Excel文件wb = xw.Book('文件路径.xlsx')# 选择要写入数据的Sheetsht = wb.sheets['Sheet1']#定义要写入的数据data = ['项目A', '项目B', '项目C', '项目D'] # 获取当前Sheet中已经存在的最后一行last_row = sht.range(1,st_cell.row).end('up').row#写入数据sht.range(f'A{last_row+1}').value = data# 关闭Excel文件wb.savewb.close```以上是使用xlwings写入一行数据的两种方法,可以根据具体需求选择适合的方式。
方法一使用了expand(函数将单元格范围扩展到数据的长度,然后直接将数据赋值给该范围。
excel 中python用法
一、介绍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操作⽤法详解在python中,对excel表格读,写,追加数据,⽤以下三个模块:1、xlrd 读取excel表中的数据2、xlwt 创建⼀个全新的excel⽂件,然后对这个⽂件进⾏写⼊内容以及保存。
3、xlutils 读⼊⼀个excel⽂件,然后进⾏修改或追加,不能操作xlsx,只能操作xls。
⼀、读excel表读excel要⽤到xlrd模块1、导⼊模块 import xlrd2、打开excel⽂件table = data.sheets()[0] #通过索引顺序获取table = data.sheet_by_index(0) #通过索引顺序获取table = data.sheet_by_name(u'Sheet1')#通过名称获取代码如下:import xlrddata = xlrd.open_workbook(r"C:\Users\907968\Desktop\test.xlsx")table1 = data.sheets()[0]table2 = data.sheet_by_index(0)table3=data.sheet_by_name(u'Sheet1')print(table1)print(table2)print(table3)返回:<xlrd.sheet.Sheet object at 0x0000000002F7F208><xlrd.sheet.Sheet object at 0x0000000002F7F208><xlrd.sheet.Sheet object at 0x0000000002F7F208>3、获取⾏数和列数import xlrddata = xlrd.open_workbook(r"C:\Users\907968\Desktop\test.xlsx")table = data.sheets()[0]nrows = table.nrowsncols = table.ncolsprint("⾏数:%d\n列数:%d"%(nrows,ncols))返回:⾏数:13列数:34、获取整⾏和整列的值,以列表形式返回rows = table.row_values(0)cols = table.col_values(0)print("rows:%s\ncols:%s"%(rows,cols))返回:rows:['A1', 'B1', 'C1']cols:['A1', 'A2', 'A3', 'A4', 'A5', 'A6', 'A7', 'A8', 'A9', 'A10', 'A11', 'A12', 'A13']5、获取单元格数据cell_A1 = table.cell_value(0,0)cell_C4 = table.cell_value(3,2)print("A1:%s\nC4:%s"%(cell_A1,cell_C4))返回:A1:A1C4:C4还可以使⽤⾏列索引来获取单元格数据cell_A1 = table.row(0)[0].valuecell_C4 = table.col(2)[3].valueprint("A1:%s\nC4:%s"%(cell_A1,cell_C4))返回:A1:A1C4:C4三、写excel操作1、导⼊:import xlwt2、创建workbookworkbook = xlwt.Workbook(encoding='utf-8', style_compression=0)encoding:设置字符编码,⼀般要这样设置:w = Workbook(encoding=’utf-8’),就可以在excel中输出中⽂了。
使用python操作excel
使⽤python操作excel使⽤python操作excelpython操作excel主要⽤到xlrd和xlwt这两个库,即xlrd是读excel,xlwt是写excel的库。
安装xlrd模块#pip install xlrd使⽤介绍常⽤单元格中的数据类型 empty(空的) string(text) number date boolean error blank(空⽩表格) empty为0,string为1,number为2,date为3,boolean为4, error为5(左边为类型,右边为类型对应的值)导⼊模块import xlrd打开Excel⽂件读取数据data = xlrd.open_workbook(filename[, logfile, file_contents, ...])#⽂件名以及路径,如果路径或者⽂件名有中⽂给前⾯加⼀个r标识原⽣字符。
#filename:需操作的⽂件名(包括⽂件路径和⽂件名称);若filename不存在,则报错FileNotFoundError;若filename存在,则返回值为xlrd.book.Book对象。
常⽤的函数 excel中最重要的⽅法就是book和sheet的操作# (1)获取book中⼀个⼯作表names = data.sheet_names()#返回book中所有⼯作表的名字table = data.sheets()[0]#获取所有sheet的对象,以列表形式显⽰。
可以通过索引顺序获取,table = data.sheet_by_index(sheet_indx))#通过索引顺序获取,若sheetx超出索引范围,则报错IndexError;若sheetx在索引范围内,则返回值为xlrd.sheet.Sheet对象table = data.sheet_by_name(sheet_name)#通过名称获取,若sheet_name不存在,则报错xlrd.biffh.XLRDError;若sheet_name存在,则返回值为xlrd.sheet.Sheet对象以上三个函数都会返回⼀个xlrd.sheet.Sheet()对象data.sheet_loaded(sheet_name or indx)# 检查某个sheet是否导⼊完毕,返回值为bool类型,若返回值为True表⽰已导⼊;若返回值为False表⽰未导⼊# (2)⾏的操作nrows = table.nrows#获取该sheet中的有效⾏数table.row(rowx)#获取sheet中第rowx+1⾏单元,返回值为列表;列表每个值内容为:单元类型:单元数据table.row_slice(rowx[, start_colx=0, end_colx=None])#以切⽚⽅式获取sheet中第rowx+1⾏从start_colx列到end_colx列的单元,返回值为列表;列表每个值内容为:单元类型:单元数据table.row_types(rowx, start_colx=0, end_colx=None)#获取sheet中第rowx+1⾏从start_colx列到end_colx列的单元类型,返回值为array.array类型。
Python学习笔记_使用openpyxl操作Excel,在同一个文件里复制某一个sheet
Python学习笔记_使⽤openpyxl操作Excel,在同⼀个⽂件⾥复制某⼀个sheet应⽤场景:定制⼀个Excel模板⽂件,其中定义了⼀个模板Sheet,以此模板⽂件⾥的模板sheet为样例,制作报表,⾥⾯有不⽌⼀个模板样例Sheet⼀、软件环境:1.OS:Win10 64位2.Python3.7⼆、准备:在测试⽂件夹下准备⼀个Excel模板⽂件,ExcelMod.xlsx,sheet name:mod样例如下:三、参考代码:#! -*- coding utf-8 -*-#! Python Version 3.7import openpyxlfrom openpyxl.styles import Font,Alignmentdef main():sSourceFile="ExcelMod.xlsx"sTargetFile="Target.xlsx"wb = openpyxl.load_workbook(sSourceFile)copy_sheet1=wb.copy_worksheet(wb.worksheets[0])copy_sheet2=wb.copy_worksheet(wb.worksheets[0])copy_sheet3=wb.copy_worksheet(wb.worksheets[0])wb.save(sTargetFile)print("It is over")if__name__=="__main__":main()四、⽣成⽂件的样例⽣成的Sheet name分别是Mod Copy、Mod Copy1、Mod Copy2五、Sheet name改名如果想定制复制好的sheet name,可对sheet name进⾏修改,下例,把复制的第⼀个sheet,改为sheet1参考代码:#! -*- coding utf-8 -*-#! Python Version 3.7import openpyxlfrom openpyxl.styles import Font,Alignmentdef main():sSourceFile="ExcelMod.xlsx"sTargetFile="Target.xlsx"wb = openpyxl.load_workbook(sSourceFile)copy_sheet1=wb.copy_worksheet(wb.worksheets[0])copy_sheet2=wb.copy_worksheet(wb.worksheets[0])copy_sheet3=wb.copy_worksheet(wb.worksheets[0])copy_sheet1.title="Sheet1"wb.save(sTargetFile)print("It is over")if__name__=="__main__":main()⽣成结果:其它两个复制的sheet,也可以分别修改copy_sheet2.title="Sheet2"copy_sheet3.title="Sheet3"六、注意事项:Excel模板⽂件,只能是.xlsx格式的,不能是早期版本的.xls格式的,否则会报错。
pytest-excel模块的用法
pytest-excel模块的用法pytestexcel是一个基于pytest框架的插件,它提供了一种简洁有效的方式,用于在单元测试中读取和写入Excel文件。
该模块适用于Python开发人员,帮助他们在测试用例中方便地使用Excel作为数据源。
在本文中,我将给出一个详细的步骤,以指导读者使用pytestexcel模块。
文章将从安装所需的软件开始,然后介绍如何编写测试用例和使用pytestexcel模块来读取和写入Excel文件。
第一步:安装pytest和pytestexcel模块要使用pytestexcel模块,首先需要安装pytest和pytestexcel。
在命令行中使用以下命令来安装这两个模块:pip install pytestpip install pytest-excel安装完成后,可以通过运行以下命令来验证是否成功安装pytestexcel模块:pytest version如果显示了pytest的版本号,则说明模块安装成功。
第二步:创建Excel文件在开始编写测试用例之前,需要准备一个Excel文件作为数据源。
创建一个新的Excel文件,并使用合适的列标题来标识测试数据。
确保将测试数据保存在工作表的第一个工作表中。
例如,假设我们想测试一个计算器函数,我们可以在Excel文件中创建以下数据:A B C数字1 数字2 期望结果2 3 54 5 96 7 13保存Excel文件,并记住它的路径。
第三步:编写测试用例现在我们已经准备好Excel文件,可以开始编写测试用例了。
在您的Python项目中创建一个新的测试文件,并在文件中导入pytestexcel模块。
pythonimport pytestimport pytestexcel接下来,我们需要定义一个fixture函数,它将用于从Excel文件中获取和返回测试数据。
使用pytest的fixture装饰器将该函数标记为fixture,指定在测试运行之前运行的操作。
python excelwriter用法
python excelwriter用法ExcelWriter是pandas库中的一个类,用于将pandas数据结构(如DataFrame)写入Excel文件。
以下是其基本用法:首先,你需要导入pandas库:pythonimport pandas as pd然后,你可以使用ExcelWriter创建一个Excel文件,并将数据写入其中。
以下是一个简单的例子:python# 创建一个ExcelWriter对象writer = pd.ExcelWriter('output.xlsx')# 假设你有一个DataFrame dfdf = pd.DataFrame({'Data': [10, 20, 30, 20, 15, 30, 45]})# 将DataFrame写入Excel文件df.to_excel(writer, sheet_name='Sheet1')# 保存Excel文件writer.save()在这个例子中,我们首先创建了一个ExcelWriter对象,指定了要写入的Excel文件的名称('output.xlsx')。
然后,我们创建了一个包含一些数据的DataFrame,并使用to_excel方法将其写入Excel文件。
最后,我们调用save方法保存Excel文件。
注意,如果你的Excel文件已经存在,并且你不希望覆盖它,你应该在创建ExcelWriter 对象时添加mode='a'参数,以在现有文件中追加数据。
但是,需要注意的是,pandas 的ExcelWriter默认引擎(openpyxl或xlsxwriter)不支持追加模式。
你可能需要改变引擎或者使用其他库(如openpyxl)来实现追加功能。
此外,ExcelWriter还支持写入多个工作表。
你可以通过多次调用to_excel方法,并改变sheet_name参数来实现这一点。
python处理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-模块XlsxWriter将数据写入excel
Python-模块XlsxWriter将数据写⼊excel1.⽬的⽤xlwt来⽣成excel的,⽣成的后缀名为xls,在xlwt中⽣成的xls⽂件最多能⽀持65536⾏数据。
python XlsxWriter模块创建aexcel表格,⽣成的⽂件后缀名为.xlsx,最⼤能够⽀持1048576⾏数据,16384列数据安装:命令:pip install XlsxWriter (或者 easy_install XlsxWriter)2.操作命令import xlsxwriter#格式的设置def xlsx_style(**kwargs):style = {'bold': kwargs.get('bold', False), # 加粗'font_name': kwargs.get('font_name', 'SimSun'), # 字体类型,默认宋体'font_size': kwargs.get('font_size', 12), # 字体⼤⼩,默认12'font_color': kwargs.get('font_color', '#000000'), # 字体颜⾊,⿊⾊'align': kwargs.get('align', 'center'), # 默认⽔平居中'valign': kwargs.get('valign', 'vcenter'), # 默认垂直居中'text_wrap': kwargs.get('text_wrap', True), # 默认⾃动换⾏'top': kwargs.get('top', 1), # 上边界,线条宽度'bottom': kwargs.get('bottom', 1), # 边界'left': kwargs.get('left', 1), # 边界'right': kwargs.get('right', 1), # 边界'bg_color': kwargs.get('bg_color', '#FFFFFF'), # 背景颜⾊,⽩⾊# 其他类型设置格式可以接着写}return styledef download_excel(data):now = datetime.datetime.now().strftime('%Y-%m-%d') #当前时间filename = u'%s/t_%s.xlsx' % (excel_path, now) #存放excel的路径workfile = xlsxwriter.Workbook(filename) # 创建Excel⽂件,保存worksheet = workfile.add_worksheet('匹配失败反馈表') # 创建⼯作表format4 = workfile.add_format({'font_size': '12', 'align': 'center', 'valign': 'vcenter', 'bold': True, 'font_color': '#217346', 'bg_color':'#FFD1A4'}) col=['A1','B1','C1','D1','E1','F1','G1','H1','I1','J1','K1','L','M','N'] #设置⾃⼰想要的标题title=[u'contract_id','asset_type_name', u'asset_name', 'director', 'asset_year','set_duration', 'single_duration', 'single_price', 'total', 'total_abroad','rmb_price', 'abroad_price', 'grant_year','grant_start_time','grant_end_time','right_item']worksheet.write_row(col[0], title, format4) # 设置AF-AI列的样式for i in range(len(data)): #我的这个data是[[],[],[]], 可以根据⾃⼰的data在下⾯第三个参数做更改worksheet.write(i+1, 0, data[i][0]) #write(row⾏,col列,数据) 从第⼀⾏开始,因为0⾏是titleworksheet.write(i+1, 1, data[i][1])worksheet.write(i+1, 2, data[i][2])worksheet.write(i+1, 3, data[i][3])worksheet.write(i+1, 4, data[i][4])worksheet.write(i+1, 5, data[i][5])worksheet.write(i+1, 6, data[i][6])worksheet.write(i+1, 7, data[i][7])worksheet.write(i+1, 8, data[i][8])worksheet.write(i+1, 9, data[i][9])worksheet.write(i+1, 10, data[i][10])worksheet.write(i+1, 11, data[i][11])worksheet.write(i+1, 12, data[i][12])worksheet.write(i+1, 13, data[i][13])worksheet.write(i+1, 14, data[i][14]) worksheet.write(i+1, 15, data[i][15]) workfile.close()return filename这就是⽣成后的excel2.2-拓展1.更详细的可以去看⽂档:2.这篇写的也很全:。
python处理excel实例
python处理excel实例Python是一种功能强大的编程语言,可以用来处理各种数据类型,包括Excel文件。
Python处理Excel文件的能力极强,可以进行数据提取、数据处理、数据分析等多方面操作。
下面是一个Python处理Excel文件的实例:1. 导入所需的库```pythonimport openpyxl```2. 读取Excel文件```pythonwb = openpyxl.load_workbook('example.xlsx')```这个代码块会打开名为example.xlsx的Excel文件,并将其存储在变量wb中。
3. 选择工作表```pythonsheet = wb['Sheet1']```这个代码块会选择名为Sheet1的工作表,并将其存储在变量sheet中。
4. 读取单元格数据cell_value = sheet['A1'].value```这个代码块会读取A1单元格的数据,并将其存储在变量cell_value中。
5. 读取行数据```pythonrow_values = []for row in sheet.iter_rows(min_row=2, max_col=3):row_values.append([cell.value for cell in row])```这个代码块会读取工作表中第2行到最后一行、第1列到第3列的数据,并将其存储在列表row_values中。
6. 读取列数据```pythoncolumn_values = []for column in sheet.iter_cols(min_row=2, max_row=4):column_values.append([cell.value for cell in column]) ```这个代码块会读取工作表中第2列到第4列、第1行到最后一行的数据,并将其存储在列表column_values中。
Python使用xlwings往excel中写入一列数据的两种方法
Pytho
1、准备一个二维列表,然后再range后面不指定任何选项,可以输出该二维列表中数据在一列中显示,如下代码:
1 # -*- coding:utf-8 -*2 import xlwings as xw 3 4 list1 = [[1],[2],[3],[4],[5]] 5 sht = xw.Book().sheets('sheet1') # 新增一个表格 6 sht.range('A1').value = list1
显示效果如下:
2、准备一个一维表格,然后在range 后面带上特定的 options 选项,可以轻松实现将列表中数据输出为一列,代码如下:
1 # -*- coding:utf-8 -*2 import xlwings as xw 3 4 list2 = [1,2,3,4,5] 5 sht = xw.Book().sheets('sheet1') # 新增一个表格 6 sht.range('A1').options(transpose=True).value = list2
显示效果如下:
总结:此两种方法因人而异,只要能适合自己提高 效率就行。 参照来源:
python的xlwings模块在excel中的使用总结 -回复
python的xlwings模块在excel中的使用总结-回复Python的xlwings模块在Excel中的使用总结一、引言Python作为一种高级编程语言,具有强大的数据处理和分析能力,而Excel则是一种广泛使用的电子表格软件,用于数据处理、可视化和报表生成。
将两者结合起来,可以充分发挥它们各自的优势,提高工作效率和数据处理能力。
在Python中,有很多用于操作Excel的第三方库,而xlwings是其中一个功能强大且易于使用的模块。
本文将详细介绍xlwings 在Excel中的使用,并提供一些实例作为参考。
二、安装和配置1. 安装xlwings模块在命令行或终端输入以下命令安装xlwings:pip install xlwings2. 配置Excel和Python环境打开Excel,点击“文件”-“选项”-“加载宏”-“项展示中的开发者”-“确认”。
打开Python环境,导入xlwings模块:import xlwings as xw三、打开和保存Excel文件1. 打开Excel文件使用`xw.Book.`打开已存在的Excel文件:book = xw.Book("path/to/excel/file.xlsx")2. 创建和保存Excel文件使用`xw.Book()`创建一个新的Excel文件:book = xw.Book()book.save("path/to/excel/file.xlsx")使用`book.save()`保存Excel文件。
四、操作单元格1. 读取和写入单元格值使用`sheet.range()`读取和写入单元格值:value = sheet.range("A1").valuesheet.range("A1").value = value2. 操作多个单元格使用`sheet.range()`选择多个单元格,并进行批量操作:rng = sheet.range("A1:B10")rng.value = [[1, 2], [3, 4], ...]3. 设置单元格格式使用`sheet.range().api`来设置单元格的格式:rng.api.Font.Bold = Truerng.api.Font.Color = 255rng.api.Font.Size = 12五、操作表格和工作簿1. 创建和选择表格使用`sheet = book.sheets.add()`创建新的表格,并可以使用`book.sheets["Sheet1"]`选择已存在的表格。
python读取excel指定列数据并写入到新的excel方法
以上这篇python读取excel指定列数据并写入到新的excel方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也 希望大家多多支持。
sh=bk.sheet_by_name("Sheet1") except:
print "代码出错" nrows=sh.nrows #获取行数 book = Workbook(encoding='utf-8') sheet = book.add_sheet('Sheet1') #创建一个sheet for i in range(1,nrows):
这篇文章主要介绍了如何基于python代码实现高精度免费ocr工具文中通过示例代码介绍的非常详细对大家的学习或者工作具有一定的参考学习价值需要的朋友可以参考下
pythoቤተ መጻሕፍቲ ባይዱ读取 excel指定列数据并写入到新的 excel方法
如下所示:
#encoding=utf-8 import xlrd from xlwt import * #------------------读数据--------------------------------fileName="C:\\Users\\st\\Desktop\\test\\20170221131701.xlsx" bk=xlrd.open_workbook(fileName) shxrange=range(bk.nsheets) try:
python利用openpyxl库操作Excel来读取、修改、写入测试数据
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对excel文件的处理
python对excel⽂件的处理python处理excel⽂件有很多⽅法,最开始接触的是xlrd、xlsxwriter模块,分别⽤于excel⽂件的读、写。
后来⼜学习了openpyxl模块,可以同时完成excel⽂件的读、写。
再后来,接触了⼤⽜pandas,这是python中专门⽤于数据分析的模块,有更加强⼤的功能。
本⽂尝试梳理⼀下这⼏个⽅法,以实际案例来对⽐各种⽅法的优劣。
1. xlrd、xlsxwriter模块1import xlrd #读取excel⽂件2import xlsxwriter #写⼊excel⽂件3 file_name = r'C:/2020/python-exer/excel_doc/time_fmt.xls' #存在⼀个excel⽂件,⽤于读4 file_name1 = r'C:/2020/python-exer/excel_doc/time_fmt_output.xls' #新建⼀个excel⽂件,⽤于写5# 读取excel⽂件,按⾏读取数据,每⾏数据对应⼀个列表元素6def excel_lines():7 wb = xlrd.open_workbook(file_name)8# 打开Excel⽂件9 sheet1 = wb.sheet_by_name('Sheet1') # 通过excel表格sheet名称获取⼯作表10 dat = [] # 创建空list11 Max_lines = sheet1.nrows # sheet1数据最⼤⾏数,即便每列元素不同。
12print(Max_lines)13for a in range(Max_lines):14 cells = sheet1.row_values(a) # 每⾏数据赋值给cells15 dat.append(cells)16return datView Code#>>>[['序号', '时间格式定义'], [1.0, '%a Locale’s abbreviated weekday name. '],[2.0, '%A Locale’s full weekday name. '],……从输出内容看出,得到的是⼀个嵌套list,每⾏数据对应着⼀个list元素。
Python文件操作(读写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维列表。
利用python对excel中的特定数据提取并写入新表的方法
利用python对excel中的特定数据提取并写入新表的方法一、引言在实际工作中,我们常常需要利用Python对Excel文件中的特定数据进行提取,并将其写入新的表格。
本文将详细介绍如何利用Python实现这一目的,从而提高数据处理的效率。
二、Python提取Excel数据库方法1.安装库要处理Excel文件,我们需要安装python-openpyxl库。
在命令行中输入以下命令进行安装:```pip install openpyxl```2.读取Excel文件首先,我们需要导入openpyxl库,并使用openpyxl.load_workbook()函数读取Excel文件。
```pythonimport openpyxl# 读取Excel文件workbook = openpyxl.load_workbook("example.xlsx")```3.提取特定数据接下来,我们需要根据需求提取Excel文件中的特定数据。
以下是一个简单的示例,提取A1单元格的值:```python# 提取A1单元格数据cell_value = workbook["Sheet1"].cell(1, 1).value```三、将提取的数据写入新表1.创建新表结构首先,我们需要创建一个新的Excel文件,并设置新表的结构。
以下代码示例创建了一个包含3列的新表:```python# 创建新表ew_workbook = workbook.copy(title="New Sheet")# 获取新表ew_sheet = new_workbook["New Sheet"]# 设置新表列宽for col in range(1, 4):new_sheet["A" + str(col)].column_width = 10```2.写入数据接下来,我们将提取的特定数据写入新表。
Python实现数据写入Excel的三种模块!
Python实现数据写⼊Excel的三种模块!本⽂说明如何使⽤xlsxwriter、pandas、openpyxl三个库来实现数据写⼊ Excel,写⼊后的格式如下图所⽰:以下为数据⽤例:import xlsxwriter as xwimport pandas as pdimport openpyxl as op"-------------数据⽤例-------------"orderIds = [1,2,3]items = ['A','B','C']myData = [10,20,30]testData = [orderIds,items,myData]filename1 = '测试1.xlsx'filename2 = '测试2.xlsx'filename3 = '测试3.xlsx'"--------------执⾏----------------"xw_toexcel(testData,filename1)pd_toexcel(testData,filename2)op_toexcel(testData,filename3)下⾯开始分别介绍三种⽅法:这⾥多说⼀句,⼩编是⼀名python开发⼯程师,这⾥有我⾃⼰整理了⼀套最新的python系统学习教程,包括从基础的python脚本到web开发、爬⾍、数据分析、数据可视化、机器学习等。
想要这些资料的可以进裙609616831领取。
1、xlsxwriterdef xw_toexcel(data,filename): # xlsxwriter库储存数据到excelworkbook = xw.Workbook(filename) # 创建⼯作簿worksheet1 = workbook.add_worksheet("sheet1") # 创建⼦表worksheet1.activate() # 激活表title = ['序号','项⽬','数据'] # 设置表头worksheet1.write_row('A1',title) # 从A1单元格开始写⼊表头i = 2 # 从第⼆⾏开始写⼊数据for j in range(len(data)):insertData = [data[0][j],data[1][j],data[2][j]]row = 'A' + str(i)worksheet1.write_row(row, insertData)i += 1workbook.close() # 关闭表2、pandasdef pd_toexcel(data,filename): # pandas库储存数据到exceldfData = { # ⽤字典设置DataFrame所需数据'序号':data[0],'项⽬':data[1],'数据':data[2]}df = pd.DataFrame(dfData) # 创建DataFramedf.to_excel(filename,index=False) # 存表,去除原始索引列(0,1,2...)3、openpyxldef op_toexcel(data,filename): # openpyxl库储存数据到excelwb = op.Workbook() # 创建⼯作簿对象ws = wb['Sheet'] # 创建⼦表ws.append(['序号','项⽬','数据']) # 添加表头for i in range(len(data[0])):d = data[0][i], data[1][i], data[2][i]ws.append(d) # 每次写⼊⼀⾏wb.save(filename)⼩结openpyxl 与 xlsxwriter 类似,需要逐⾏写⼊,如第⼀⾏需要得到 [ 1, ‘A’ , 10 ] 的格式,但不同的是使⽤openpyxl.load_workbook(filepath)可以对已存在的 .xlsx 进⾏追加数据,不会覆盖;pandas 则需先按列组合,如 [[ 1,2,3],['A','B','C'],[…]]的格式。
【Python学习】Python操作Excel之通过xlutils实现在保留原格式的情况下。。。
【Python学习】Python操作Excel之通过xlutils实现在保留原格式的情况下。
在Python操作Excel 的模块有 xlrd、xlwt、xlutils等。
xlrd:读取Excel⽂件数据xlwt:写⼊Excel 数据,缺点是Excel格式⽆法复⽤,为了⽅便⽤户,写⼊的话,⽐较推荐xlutils模块,它可以可复制原excel格式1复制代码2 #coding=utf-83 import xlrd,xlwt4from xlutils.copy import copy56 #读取⽂件7 read_file = xlrd.open_workbook(file_path,formatting_info=True)8 #参数注释:9 #file_path:⽂件路径,包含⽂件的全名称10 #formatting_info=True:保留Excel的原格式1112 #将⽂件复制到内存13 write_data = copy(read_file)1415 #读取复制后⽂件的sheet116 write_save = write_data.get_sheet(0)1718 #写⼊数据19 write_save.write(x,y,value)20 #参数注释:21 #x,y:写⼊⽬标格的位置坐标22 #value:写⼊数据2324 #保存写⼊数据后的⽂件到原⽂件路径25 write_data.save(self.file_path)样式:1 #coding:utf-82 import os3 import time4 import xlwt56 filename="test_xlwt.xls"7if os.path.exists(filename):8 os.remove(filename)9 def set_color(color,bold):10 style=xlwt.XFStyle()11 font=xlwt.Font()12 font.colour_index=color13 font.bold = bold14 style.font=font15return style16 title_style=set_color(0x06,True)17 xls=xlwt.Workbook()18 shet1=xls.add_sheet("test_sheet")19 shet1.write(0,0,"test",set_color(0x02,True)) #红⾊20 shet1.write(0,1,"test",set_color(0x05,False)) #黄⾊21 shet1.write(0,2,u"你好",set_color(0x00,True)) #⿊⾊加粗22 shet1.write(0,3,u"你好",set_color(0x00,False)) #⿊⾊不加粗23 shet1.write(0,4,u"你好",title_style) #⿊⾊加粗24 xls.save("test_xlwt.xls")1 import xlwt2from datetime import datetime34 # 设置样式字体name Times New Roman 字体颜⾊为红⾊数字格式为:#,##0.005 style0 = xlwt.easyxf('font: name Times New Roman, color-index red, bold on',6 num_format_str='#,##0.00')78 # 设置样式⽇期格式为D-MMM-YY9 style1 = xlwt.easyxf(num_format_str='D-MMM-YY')1011 # 新建⼯作簿12 wb = xlwt.Workbook()1314 # 新建⼯作表15 ws = wb.add_sheet('A Test Sheet')1617 # 向某⾏某列写⼊数据18 ws.write(0, 0, 1234.56, style0)19 ws.write(1, 0, datetime.now(), style1)20 ws.write(2, 0, 1)21 ws.write(2, 1, 1)22 ws.write(2, 2, xlwt.Formula("A3+B3")) 2324 # 保存⼯作表25 wb.save('1.xls')。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
python学习笔记(接口自动化框架V2.0)这个是根据上次框架版本进行的优化用python获取excel文件中测试用例数据通过requets测试接口、并使用正则表达式验证响应信息内容生成xml文件测试报告版本更新内容:1. 整理了CreateTest.test_main()流程逻辑2. 优化了testcase.xls文件格式3. 添加了生成XML文件测试报告代码如下:1#!/usr/bin/env python2# -*- coding: utf_8 -*-3# 获取测试用例文件excel45import xlrd6import json789class CreateExcel:10def__init__(self):11pass1213 @classmethod14def open_excel(cls):15 path = "testcase.xls"16 workbook = xlrd.open_workbook(path)17 table = workbook.sheets()[0]18return table1920# 获取sheet2122 @classmethod23def get_nrows(cls, table):24 nrows = table.nrows25return nrows2627# 获取行号2829 @classmethod30def get_id(cls, table, nrows):31 testid = []32for i in range(1, nrows):33 testid.append(table.cell(i, 0).value)34return testid3536 @classmethod37def get_name(cls, table, nrows):38 testname = []39for i in range(1, nrows):40 testname.append(table.cell(i, 1).value)41return testname4243# 获取用例name4445 @classmethod46def get_data(cls, table, nrows):47 testdata = []48for i in range(1, nrows):49try:50 data = json.loads(table.cell(i, 2).value)51 testdata.append(data)52except ValueError:53 testdata.append(None)54return testdata5556# 获取data接口参数5758 @classmethod59def get_url(cls, table, nrows):60 testurl = []61for i in range(1, nrows):62 testurl.append(table.cell(i, 3).value)63return testurl6465# 获取接口测试url6667 @classmethod68def get_method(cls, table, nrows):69 testmethod = []70for i in range(1, nrows):71 testmethod.append(table.cell(i, 4).value) 72return testmethod7374# 获取接口测试method7576 @classmethod77def get_pattern(cls, table, nrows):78 testpattern = []79for i in range(1, nrows):80 testpattern.append(table.cell(i, 5).value) 81return testpattern8283# 获取接口期望响应结果841#!/usr/bin/env python2# -*- coding: utf_8 -*-3# 测试核心组件45import requests6import re7from datetime import datetime8from createexcel import CreateExcel9from xml.dom import minidom10import sys111213class CreateTest:14 reload(sys)15 sys.setdefaultencoding("utf-8")1617# 避免字符串写入文件出错1819def__init__(self):20pass2122 @classmethod23def test_api(cls, method, url, data):24global results25try:26if method == "post":27 results = requests.post(url, data)28if method == "get":29 results = requests.get(url, data)30return results31except Exception.__bases__:32print"服务器访问失败"3334# 接口函数3536 @classmethod37def test_on(cls):38print"用例执行开始"3940 @classmethod41def test_close(cls):42print"用例执行结束"4344 @classmethod45def test_result(cls, pa):46global report47try:48 pattern = pile(pa)49 match = pattern.search(testresults.text) 50if match.group() == pa:51 report = "测试通过"52except AttributeError:53 report = "测试失败"54return report5556# 正则表达式检测5758 @classmethod59def test_http(cls, code):60print"请求返回状态码: ", code6162 @classmethod63def test_time(cls):64 nowtime = datetime.today()65 time = nowtime.strftime("%Y-%m-%d %H:%M:%S") 66return time6768# 获取当前时间转化字符串6970 @classmethod71def test_report(cls):72 nowtime = datetime.today()73 reportime = nowtime.strftime("%Y%m%d%H%M%S")74 reportname = reportime + ".xml"75return reportname7677# 获取测试报告文件名称7879 @classmethod80def test_main(cls):81global testresults82 table = CreateExcel.open_excel()83 nrows = CreateExcel.get_nrows(table)84 xml = minidom.Document()85 xml.appendChild(xml.createComment("测试报告"))86 caselist = xml.createElement("caselist")87 xml.appendChild(caselist)88for i in range(0, nrows - 1):89 testid = CreateExcel.get_id(table, nrows)[i]90 testname = CreateExcel.get_name(table, nrows)[i]91 testdata = CreateExcel.get_data(table, nrows)[i]92 testurl = CreateExcel.get_url(table, nrows)[i]93 testmethod = CreateExcel.get_method(table, nrows)[i]94 testpattern = CreateExcel.get_pattern(table, nrows)[i]9596# 执行测试97 CreateTest.test_on()98 testresults = CreateTest.test_api(testmethod, testurl, testdata)99 testcode = str(testresults.status_code)100try:101 CreateTest.test_http(testresults.status_code)102except AttributeError:103pass104 CreateTest.test_close()105# 执行结束106# 生成xml文件107 case = xml.createElement("case")108 case.setAttribute("id", testid)109# 输入用例ID110111 name = xml.createElement("name")112 name.appendChild(xml.createTextNode(testname))113# 输入用例名称114 method = xml.createElement("method")115 method.appendChild(xml.createTextNode(testmethod))116# 输入接口类型117 code = xml.createElement("code")118 code.appendChild((xml.createTextNode(testcode)))119# 输入用例返回状态码120 result = xml.createElement("result")121result.appendChild(xml.createTextNode(CreateTest.test_result(testpattern)))122# 输入用例测试结果123 time = xml.createElement("time")124 time.appendChild(xml.createTextNode(CreateTest.test_time()))125# 输入用例执行时间126127 case.appendChild(name)128 case.appendChild(method)129 case.appendChild(code)130 case.appendChild(result)131 case.appendChild(time)132133 caselist.appendChild(case)134# xml文件生成结束135 filename = file(CreateTest.test_report(), "w+")136# 生成以当前时间命名的测试报告文件137 xml.writexml(filename)138 filename.close()139# 关闭文件140141142if__name__ == '__main__':143 CreateTest.test_main()下面是测试入口:1#!/usr/bin/env python2# -*- coding: utf_8 -*-3# **************************************************************** 4# interface.py5# Author : ChenLei6# Version : 2.07# Date : 2016-4-158# **************************************************************** 910import time11from createtest import CreateTest1213 start = time.clock()14 CreateTest.test_main()15 end = time.clock()1617print"接口自动化脚本运行时间:%.03f seconds" % (end - start)运行后自动生成当前时间的xml文件如下:分类: python。