python处理excel表,python 对excel操作用法详解

  python处理excel表,python 对excel操作用法详解

  用python制作excel表格的方法:首先用openpyxl模块打开一个excel文档,指定行和列的单元格信息;然后调用[wb.sheetnames]和[wb.active]获取工作簿的详细信息;最后,通过索引读取获得单元格对象。

  一 python与Excel表格

  Excel是Windows环境下一个流行且功能强大的电子表格应用程序。Openpyxl模块使Python程序能够读取和修改Excel电子表格文件。

  1)1)excel文档的基本定义

  -工作簿(工作簿)

  -纸张(纸张)

  -活动表(活动表)

  -第3360排1,2,3,4,5,6.

  -第3360a、b、c、d栏.

  -C1 : B1号牢房

  2)python有很多种Excel电子表格操作的模块,这里选择了openpyxl模块。

  但是,需要安装openpyxl模块。

  Install pip openpyxl使用上面的命令来安装openpyxl模块。

  这是为操作选择的表单。

  1打开一个excel文档。

  Openpyxl # 1。打开一个excel文档,

  类“openpyxl.workbook.workbook”实例化对象WB=openpyxl . load _ workbook( book . xlsx )

  Print(wb,type(wb))#获取当前工作簿中的所有工作表和正在使用的表;打印(wb.sheetnames)

  打印(wb.active)

  输出是一个对象。

  2选择要操作的工作表。

  # 2.选择要操作的工作表,返回工作表对象sheet=wb[Sheet1]

  #获取工作表打印的名称(sheet.title)

  指定行中指定列的单元格信息。

  # 3.返回单元格信息print (sheet.cell (row=1,column=2)。值)的值。

  cell=sheet[B1]print(单元格)print(单元格.行,单元格.列,单元格.值)

  4获取工作表中行和列的最大值。

  # 4.获取工作表中的行和列的最大值print(sheet . max _ column)print(sheet . max _ row)

  Sheet.title=学生信息打印(Sheet.title)

  5访问该单元的所有信息

  # 5.访问单元格打印的所有信息(sheet.rows)

  #返回一个包含文件每一行的生成器,可以方便的访问。

  #循环遍历sheet.rows:中的每一行

  #在第:行的每个单元格中循环

  #获取单元格内容

  print(cell.value,end=,)

  打印()

  6保存修改后的信息。

  #6.保存修改信息wb.save(filename=Boom.xlsx )

  因此操作e

  xcel表格可详细的概括如下:
1.导入 openpyxl 模块。
2.调用 openpyxl.load_workbook()函数。
3.取得 Workbook 对象。
4.调用 wb.sheetnames和 wb.active 获取工作簿详细信息。
5.取得 Worksheet 对象。
6.使用索引或工作表的 cell()方法,带上 row 和 column 关键字参数。
7.取得 Cell 对象。
8.读取 Cell 对象的 value 属性
二 Excel简单实例
- 定义一个函数, readwb(wbname, sheetname=None)
- 如果用户指定sheetname就打开用户指定的工作表, 如果没有指定, 打开active sheet;
- 根据商品的价格进行排序(由小到大), 保存到文件中;商品名称:商品价格:商品数量
- 所有信息, 并将其保存到数据库中

  

import osimport openpyxldef readwb(wbname, sheetname=None):

   # 打开工作薄

   wb = openpyxl.load_workbook(wbname) # 获取要操作的工作表

   if not sheetname:

   sheet = wb.active else:

   sheet = wb[sheetname] # 获取商品信息保存到列表中

   #[ ['name', price, count]

   all_info = [] for row in sheet.rows:

   child = [cell.value for cell in row]

   all_info.append(child)

   return sorted(all_info, key=lambda

   item: item[1])def save_to_excel(data, wbname, sheetname='sheet1'):

   """

   将信息保存到excel表中;

   [[' BOOK', 50, 3], ['APPLE', 100, 1], ['BANANA', 200, 0.5]]

   """

   print("写入Excel[%s]中......." %(wbname)) #打开excel表, 如果文件不存在, 自己实例化一个WorkBook对象

   wb = openpyxl.Workbook() # 修改当前工作表的名称

   sheet = wb.active # 修改工作表的名称

   sheet.title = sheetname for row, item in enumerate(data): # 0 [' BOOK', 50, 3]

   for column, cellValue in enumerate(item): # 0 ' BOOK'

   sheet.cell(row=row+1, column=column+1, value=cellValue) # ** 往单元格写入内容

   # sheet.cell['B1'].value = "value"

   # sheet.cell(row=1, column=2, value="value")

   # 保存写入的信息

   wb.save(filename=wbname)

   print("写入成功!")

  data = readwb(wbname='Book1.xlsx')

  save_to_excel(data, wbname='Book2.xlsx', sheetname="排序商品信息")

  * 三 更改表格的内容*
每一行代表一次单独的销售。列分别是销售产品的类型(A)、产品每磅的价格
(B)、销售的磅数(C),以及这次销售的总收入。TOTAL 列设置为 Excel 公式,将每磅的成本乘以销售的磅数,
并将结果取整到分。有了这个公式,如果列 B 或 C 发生变化,TOTAL 列中的单元格将自动更新.

  需要更新的价格如下:
Celery 1.19
Garlic 3.07
Lemon 1.27

  现在假设 Garlic、 Celery 和 Lemons 的价格输入的不正确。这让你面对一项无聊
的任务:遍历这个电子表格中的几千行,更新所有 garlic、celery 和 lemon 行中每磅
的价格。你不能简单地对价格查找替换,因为可能有其他的产品价格一样,你不希
望错误地“更正”。对于几千行数据,手工操作可能要几小时
下载文件 : produceSales.xlsx
原文件打开情况:

1> 首先需要打开电子表格文件
2> 然后查找每一行内容,检查列 A (即列表的第一个索引)的值是不是 Celery、Garlic 或 Lemon
3> 如果是,更新列 B 中的价格(即列表第二个索引)
4> 最后将该表格保存为一个新的文件

  

import osimport openpyxldef readwb(wbname, sheetname=None):

   # 打开工作薄

   wb = openpyxl.load_workbook(wbname)

   # 获取要操作的工作表

   if not sheetname:

   sheet = wb.active else:

   sheet = wb[sheetname]

   # 获取商品信息保存到列表中

   all_info = [] for row in sheet.rows:

   child = [cell.value for cell in row]

   all_info.append(child)

   if child[0] == 'Celery':

   child[1] = 1.19

   if child[0] == 'Garlic':

   child[1] = 3.07

   if child[0] == 'Lemon':

   child[1] = 1.27

   return all_infodef save_to_excel(data, wbname, sheetname='sheet1'):

   """

   将信息保存到excel表中;

   """

   print("写入Excel[%s]中......." % (wbname))

   # 打开excel表, 如果文件不存在, 自己实例化一个WorkBook对象

   wb = openpyxl.Workbook()

   # 修改当前工作表的名称

   sheet = wb.active

   # 修改工作表的名称

   sheet.title = sheetname

   for row, item in enumerate(data): # 0 [' BOOK', 50, 3]

   for column, cellValue in enumerate(item): # 0 ' BOOK'

   sheet.cell(row=row + 1, column=column + 1, value=cellValue)

   # ** 往单元格写入内容

   # sheet.cell['B1'].value = "value"

   # sheet.cell(row=1, column=2, value="value")

   # 保存写入的信息

   wb.save(filename=wbname)

   print("写入成功!")

  data = readwb(wbname='/home/kiosk/Desktop/day17/produceSales.xlsx')

  save_to_excel(data, wbname='new_Sales.xlsx', sheetname="商品信息")


表示写入新数据成功


  
这是更改后的保存的新表格以上就是python针对Excel表格的操作的详细内容,更多请关注盛行IT软件开发工作室其它相关文章!

  

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

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