excel与python

excel与python

  1. Excel的基本定义
  • 工作薄(workbook):一个Excel电子表格;
  • 工作表(sheet): 每个工作薄里面包含的表, 默认有3个;
  • 活动表(active sheet): 用户当前查看的工作表;
  • 单元格(cell): 特定的行和列构成的格子;
  • 列(column): 列地址是从A开始的;
  • 行(row):行地址是从1开始的;
  1. 版本 > 2007使用xlrd模块实现

import xlrd
wb = xlrd.open_workbook(’/tmp/Book1.xls’)
print(wb.sheet_names())

具体操作:

import openpyxl

1. 导入工作薄

wb = openpyxl.load_workbook(’/tmp/Book1.xlsx’)

2. 查看包含的工作表

print(wb.sheetnames)

3. 查看当前活动表

print(wb.active)

4. 从工作薄中选择要操作的工作表

sheet = wb[‘修改的工作表’]

5. 查看制定单元格的数据

cell = sheet[‘B3’]

cell = sheet.cell(row=3, column=2)

6. 获取单元格详细信息

print(cell.value)

7. 修改单元格信息

cell.value = 1111111

8. 获取工作表的总行和总列数

print(sheet.max_column)
print(sheet.max_row)

9. 修改单元表的名称

print(sheet.title)
sheet.title = “修改的工作表”

10. 遍历历EXCEL表格的所有数据;

print(sheet.rows) # 返回的是一个生成器

遍历历每一行

for row in sheet.rows:

获取每一行, 每个单元格的数据

for cell in row:

print(cell.value, end=’\t’)

print(’\n’)

11. 保存修改的信息

wb.save(’/tmp/Book1.xlsx’)

表格的读写操作

import openpyxl
def create_to_excel(wbname, data, sheetname=‘Sheet1’, ):

“”"
将制定的信息保存到新建的excel表格中;
:param wbname:
:param data: 往excel中存储的数据;
:param sheetname:
:return:
“”"
print(“正在创建excel表格%s…” % (wbname))
#wb = openpyxl.load_workbook(wbname) #如果文件存在,则读取它
####### 如果文件不存在, 自己实例化一个WorkBook的对象;
wb = openpyxl.Workbook()

获取当前活动工作表的对象

sheet = wb.active

修改工作表的名称

sheet.title = sheetname

将数据data写入excel表格中;

print(“正在写入数据…”)
for row, item in enumerate(data): ####### data发现有4行数据, item里面有三列数据;

for column, cellValue in enumerate(item):

cell = sheet.cell(row=row + 1, column=column + 1, value=cellValue) # 将下面两行合并为一行
#cell = sheet.cell(row=row+1, column=column + 1)
#cell.value = cellValue

wb.save(wbname)
print(“保存工作薄%s成功…” % (wbname))

def readwb(wbname, sheetname=None):

1. 加载工作薄

wb = openpyxl.load_workbook(filename=wbname)

2. 选择操作的工作表

if not sheetname:

sheet = wb.active

else:

sheet = wb[sheetname]

读取数据, 存储为python的数据结构

goodsInfo = []
for row in sheet.rows:

rowValues = [cell.value for cell in row]
goodsInfo.append(rowValues)

return goodsInfo

if name == ‘main’:

data = [
[‘书记名称’, ‘数量’, ‘价格’],
[‘python核心编程’, 60, 90],
[‘Java核心编程’, 50, 120],
[‘Php核心编程’, 100, 80],
]

print("1. " + “" * 50)
create_to_excel(‘doc/excel01.xlsx’, data, ‘书籍信息统计’)
goodsInfo = readwb(‘doc/excel01.xlsx’, ‘书籍信息统计’)
print("2. " + "
” * 50)

按照商品数量进行排序 sorted()

numSortInfo = [goodsInfo[0]]+ sorted(goodsInfo[1:], key=lambda x: x[1])
print(numSortInfo)
create_to_excel(‘doc/sorted_by_num.xlsx’, numSortInfo, ‘书籍信息统计按照数量排序’)
print("3. " + “*” * 50)

按照商品价格进行排序 sorted()

priceSortInfo = [goodsInfo[0]] + sorted(goodsInfo[1:], key=lambda x: x[2])
print(priceSortInfo)
create_to_excel(‘doc/sorted_by_price.xlsx’, numSortInfo, ‘书籍信息统计按照价格排序’)

猜你喜欢

转载自blog.csdn.net/qq_37037438/article/details/86520990
今日推荐