python中打开excel文件,python读写excel文件

  python中打开excel文件,python读写excel文件

  一. xlrd和xlwt

  你需要在使用它之前安装它。如果在windows上直接在cmd中运行python,需要先执行pip3 install xlrd和pip3 install xlwt。如果使用pycharm,需要在项目的解释器中安装这两个模块。文件-设置-项目:布局-项目解释器,点击右边界面的+号,然后搜索xlrd和xlwt,再点击安装包进行安装。

  对于excel来说,整个excel文件称为工作簿,工作簿中的每一页都称为工作表,工作表由痴情的冬天组成。

  对于xlrd和xlwt,行列数从0开始,《花痴的冬天》的行列数也是这样。例如,sheet.row_values(2)表示第三行的内容,sheet.cell(1,2)表示第三行的内容。值表示第二行第三列中花痴的冬天的内容。

  1.xlrd模块读取excel文件

  您需要在使用xlrd模块之前导入导入xlrd,该模块可以读取xls文件和xlsx文件。

  获取工作簿对象:book=xlrd.open_workbook(excel文件名)

  获取所有工作表名称:names=book.sheet_names(),结果是一个列表。

  根据索引获取工作表对象:sheet=book.sheet_by_index(i)

  按名称获取工作表对象:sheet=book.sheet_by_name(工作表名称)

  获取工作表行数:rows=sheet.nrows

  获取工作表的列数:cols=sheet.ncols

  获取工作表中某一行的内容:row=sheet.row_values(i),结果是一个list [sheet.row(i),list]

  获取工作表中某一列的内容:col=sheet.col_values(i)结果是一个列表[sheet.col(i),list]

  获取工作表中一个花痴的冬天的内容:cell=sheet.cell_value(m,n),sheet.cell(m,n)。值,sheet.row(m)[n]。值,sheet.col(n)[m]。值,结果是字符串或值[sheet.cell(0,0

  例:假设py执行文件的同一级目录下有一个fruit.xls文件,有三个表页,分别是Sheet1、Sheet2、Sheet3,其中Sheet1的内容如下:

  importxlrd

  book=xlrd . open _ workbook( fruit . xls )print(工作表页面名称:,book.sheet_names())

  sheet=book.sheet_by_index(0)

  rows=sheet.nrows

  Cols=sheet.ncolsprint(此工作表有%d行和%d列。%(rows,cols))print(第三行包含:,sheet.row_values(2))print(第二列包含%s,数据类型为% s . %(sheet Type(sheet . cell _ value(1(1)))print(第二列包含% s,数据类型为% s.% (sheet.col (1),type (sheet.col (1))) print(第二行第二列花痴的冬季内容为:,sheet 1) print(花痴的冬季内容value)print(第五行第三列花痴的冬天内容是:,sheet.row(4)[2]。值)打印(第五行第三列花痴的冬季内容为%s数据类型为%s%(工作表。col (2) [4]。值、类型(表。col (2) [4]。value)) print(第五行第三列花痴的冬季内容为% s,数据类型为%s%(sheet.col(2)[4]。type(sheet . col(2)[4])#执行结果#工作表页面名称:[Sheet1 , Sheet2 , Sheet3]#此工作表有5行3列。#第三行是[pear ,3.5,130.0]#第二列是数据类型is。#第二列为[正文:单价/元,数字:8.0,数字:3.5,数字:4.5,数字:3.8],数据类型为。#第二行和第二列中的花痴的冬季含量是8.0#第三行和第二列中的花痴的冬季含量是3.5#第五行和第三列中的花痴的冬季含量是300.0#第五行和第三列中的花痴的冬季含量是300.0,数据类型是#第五行和第三列中的花痴的冬季含量是数字:300.0

  Xlrd读取excel示例

  可以看出,行或列的内容也可以通过sheet.row(i)和sheet.col(i)获得,结果也是一个列表,但列表中的每一项都类似于一个字典键值对,数据类型为:value。

  而sheet.cell(0,0)获取花痴的冬季内容,结果是一个键值对,而且是一个xlrd.sheet.Cell对象。

  2.xlwt写入excel文件

  在使用xlwt模块之前,需要导入导入xlwt模块。xlwt模块只能写xls文件,不能写xlsx文件(写xlsx程序不会报错,但是最后直接打不开文件,会报错)。

  创建工作簿:book=xlwt。工作簿()。如果汉字是乱码,可以添加参数encoding=utf-8

  创建一个工作表:sheet=book.add_sheet(Sheet1 )

  将内容写入花痴的冬天:sheet.write(m,n,内容1 ),sheet.write(x,y,内容2 )

  保存工作簿:book.save(excel文件名),默认保存在py文件的同一路径下。如果这个路径中存在相同的文件,它将被新创建的文件覆盖,即xlwt无法修改该文件。

  importxlwt

  book=xlwt。工作簿()

  sheet=book.add_sheet(Sheet1 )

  sheet.write(0,0,你好)

  Sheet.write(1,0, Hello )

  book.save(hello.xls )

  Xlwt创建并编写excel样本。

  痴情的冬天一个个写excel很麻烦。你可以把它写成行或列。

  importxlwt

  Proj=[名称,单价/元,库存/公斤]

  水果=[苹果,梨,香蕉,橘子]

  价格=[8,3.5,4.5,3.8]

  存储=[150,130,100,300]

  book=xlwt。工作簿()

  sheet=book . add _ sheet( sheet 1 )for I in range(0,len(proj)):

  Sheet.write(0,I,proj[i])#按行插入行标题

  for i inrange(0,len(fruit)):

  Sheet.write(i 1,0,fruit[i]) #插入水果名称的第一列

  对于i inrange(0,len(price)):

  Sheet.write(i 1,1,price[i]) #在第二列中插入单价

  对于i inrange(0,len(存储)):

  Sheet.write(i 1,2,storage[i]) #插入库存的第三列

  book.save(fruit2.xls )

  Xlwt逐行或逐列写入excel。

  二、openpyxl模块

  Openpyxl模块可以读写修改excel文件,只能处理xlsx文件,不能处理xls文件。在使用之前,还需要安装这个模块,然后导入到import openpyxl中。

  对于openpyxl,行数和列数从1开始,花痴的冬天的行数和列数也从1开始。例如,sheet.cell(1,2)。值指示花痴的冬天的第一行和第二列的内容。

  1.openpyxl读取excel文件

  获取工作簿对象:book=open pyxl . load _ workbook( Excel文件名)

  获取所有工作表名称:names=book.sheetnames

  获取工作表对象:sheet1=book.worksheets[n],sheet2=book[工作表名称],sheet 3=book[book . sheet names[n]]

  获取工作表名称:title=sheet1.title

  获取工作表行数:rows=sheet1.max_row

  获取工作表列数:cols=sheet1.max_column

  得到一个花痴的冬天内容:cell=sheet.cell(1,2)。值,单[花痴的冬天]。例如,sheet[B1]。

  假设有一个fruit2.xlsx,和上面的fruit.xls除了后缀完全一样。

  importopenpyxl

  book=open pyxl . load _ workbook( fruit 2 . xlsx )print(所有工作表页面名称:,book.sheetnames)

  sheet=book.worksheets[0]

  sheet2=book[Sheet1]

  sheet=book[book . sheet names[0]]print(工作表名称:,sheet3.title)

  rows=sheet.max_row

  Col=sheet.max _ columnprint(此工作表有%d行和%d列。%(rows,cols))#执行结果#所有工作表页面名称:[Sheet1 , Sheet2 , Sheet3]#工作表名称:Sheet1#此工作表有5行3列。

  Openpyxl读取excel示例

  2.行和列生成器

  对于xlrd模块,可以通过sheet.row[i]和sheet.col[i]直接获取行和列的内容,但是对于openpyxl模块,不能直接获取某一行或某一列的内容。openpyxl模块的sheet.rows和sheet.columns表示行和列的生成器,也就是generator对象,行或列的值需要通过循环或者转换成列表或者元组来获取。

  Print (sheet.rows,sheet . columns)for col in sheet . cols:print(col)for row for sheet . rows:for I in row:print(I . value,end=) print () #执行结果# #(,)#(,)#名称单价/元库存/公斤#苹果8 150#梨3.5 130#香蕉4.5 100#橙3.8 300

  Openpyxl的行和列生成器

  如果您想要获取某一行或列的内容,您可以将行和列生成器对象转换为列表或元组,并循环使用这些列表或元组来获取内容。

  已经说过openpyxl模块的行和列是从1开始的,但是由于生成器转换成的是list list(sheet.rows),而list的索引是从0开始的,所以list(sheet.rows)[1]还是表示第二行的内容,而不是第一行的内容。

  for I in list(sheet . rows)[1]:print(I . value,end= )print()for I in list(sheet . columns)[0]:print(I . value,end=) #执行结果# Apple 8 150#名称苹果梨香蕉橙

  获取行或列的内容。

  获取花痴冬天的内容。

  Print(sheet.cell(1,2))。value) #花痴的冬天第一行第二列的内容

  打印(纸张[a2]。value) #使用excel中《迷恋的冬天》的批注,字母不区分大小写。

  3.openpyxl写excel文件

  创建工作簿:book=openpyxl。工作簿()。如果汉字是乱码,可以添加参数encoding=utf-8

  create worksheet:sheet=book . create _ sheet( worksheet name ,0),0表示创建的工作表在工作簿的前面。

  将内容写入花痴的冬天:sheet.cell(m,n,内容1 ),sheet.cell(x,y,内容2 )

  保存工作簿:book.save(excel文件名),默认保存在py文件的同一路径下。如果此路径中有相同的文件,它将被新创建的文件覆盖。

  book=openpyxl。工作簿()

  sheet=book . create _ sheet( sheet 1 ,0)

  Proj=[名称,单价/元,库存/公斤]

  水果=[苹果,香蕉,梨,橘子]

  价格=[8,3.5,4.5,3.8]

  i inrange(len(proj))的存储=[150,130,300,100]:

  i inrange(len(fruit))的sheet.cell(1,i 1,proj[i]):

  i inrange(len(price))的sheet.cell(i 2,1,fruit[i]):

  i inrange(len(storage))的sheet.cell(i 2,2,price[i]):

  sheet.cell(i 2,3,存储[i])

  book.save(fruit2.xlsx )

  Openpyxl创建并编写excel示例。

  4.openpyxl修改excel文件

  Sheet.insert_rows(m)和sheet.insert_cols(n)分别表示在第m行和第n列前面插入行和列。

  Sheet.delete_rows(m)和sheet.delete_cols(n)分别删除第m行和第n列。

  rows=sheet.max_row

  sheet.insert_rows(第2行)

  樱桃=[樱桃,17,80]j in cherry:

  sheet.cell(第1行,cherry.index(j) 1,j)

  book.save(fruit2.xlsx )

  Openpyxl在指定位置添加一行。

  修改花痴的冬季内容:sheet.cell(m,n)=内容1 或sheet[B3]=内容2

  sheet.cell(3,2,4)

  sheet[ B3 ]=5 book . save( fruit 2 . xlsx )

  Openpyxl修改花痴的冬天的内容

  在末尾添加行:sheet.append (iterable对象)。

  草莓=[草莓,20,50]

  工作表.附加(草莓)

  book.save(fruit2.xlsx )

  Append在末尾追加一行。

  Xlrd,xlwt,openpyxl处理excel文件,但是写文件没有熊猫那么简单。见另一个博客,https://www.cnblogs.com/Forever77/p/11298173.html,的熊猫处理excel文件。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: