
相关文章:
python处理Excel实现自动化办公教学(含实战)【一】
python处理Excel实现自动化办公教学(含实战)【二】
python处理Excel实现自动化办公教学(数据筛选、公式操作、单元格拆分合并、冻结窗口、图表绘制等)【三】
相关码源:B站python资料.zip-数据挖掘文档类资源-CSDN下载

pip install -U openpyxl==3.0.7 / pip install openpyxl==3.0.7pip install lxml
pip install pillow实例表格如下:

import openpyxl用 openpyxl 模块打开 Excel 文档
#创建了一个指定的工作簿对象
wb = openpyxl.load_workbook(filename='./data/test.xlsx')获取工作簿的sheet表的名称
wb.get_sheet_names()获取指定的sheet对象
sheet = wb.get_sheet_by_name('基本信息') #
sheet = wb.get_sheet_by_name('也就是某个sheet')获取活动表
wb.get_active_sheet()cell = sheet['A4'] #A列第三个
cell.value
cell.row
cell.column
cell.coordinateprint上述得到: bobo2;4;1;A4
用字母来指定列,这在程序中可能有点奇怪,特别是在 Z 列之后,列开时使用 两个字母:AA、AB、AC 等。作为替代,在调用表的 cell()方法时,可以传入整数 作为 row 和 column 关键字参数,也可以得到一个单元格。第一行或第一列的整数 是 1,不是 0。
sheet.cell(row=1,column=2).value
'age'for cell_row in sheet['A2':'E6']:
for cell in cell_row:
print(cell.coordinate,cell.value)sheet.columns[0]
#第一列
(<Cell 基本信息.A1>,
<Cell 基本信息.A2>,
<Cell 基本信息.A3>,
<Cell 基本信息.A4>,
<Cell 基本信息.A5>,
<Cell 基本信息.A6>,
<Cell 基本信息.A7>)
for cell in list(sheet.columns)[0]:
print(cell.value)
name
bobo
bobo1
bobo2
bobo3
bobo4
bobo5获取工作表中的最大行和最大列的数量
print(sheet.max_ row,sheet.max column)
7 6项目:2010 年美国人口普查数据自动化处理

countyData结构:【构建要求形式】

如果前面的字典保存在 countyData 中,下面的表达式求值结果如下:

代码:openpyxl 2.x版本
import openpyxl, pprint
print('Opening workbook...')
wb = openpyxl.load_workbook('data/censuspopdata.xlsx')
sheet = wb.get_sheet_by_name('Population by Census Tract') #sheet[0]
#countyData将包含你计算的每个县的总人口和普查区数目。但在它里面存储任何东西之前,你应该确定它内部的数据结构。
countyData = {}
print('Reading rows...')
for row in range(2, sheet.get_highest_row() + 1): #sheet.get_highest_row() 获取最大行数
state = sheet['B' + str(row)].value #获取值
county = sheet['C' + str(row)].value
pop = sheet['D' + str(row)].value
countyData.setdefault(state, {}) #{state:{}} #setdefault给字典添加键值
#在给后续添加键值
countyData[state].setdefault(county, {'tracts': 0, 'pop': 0}) #{state:{county:{'tracts': 0, 'pop': 0}}}
countyData[state][county]['tracts'] += 1
countyData[state][county]['pop'] += int(pop)
print('Writing results...')
#写入py文件
resultFile = open('census2010.py', 'w')
#使用 pprint.pformat()函数,将变量字典的值作为一个巨大的字符串, 写入文件 census2010.py
resultFile.write('allData = ' + pprint.pformat(countyData))
resultFile.close()
print('Done.')Opening workbook...
Reading rows...
Writing results...
Done.将countyData输出到文本文件 census2010.py,你就通过 Python 程序生成了一个 Python 程序!这样做的好处是现在可以导入 census2010.py,就像任何其他 Python 模块一样。
import os
import census2010
#查看AK州Anchorage县的人口普查数据
census2010.allData['AK']['Anchorage']
{'pop': 291826, 'tracts': 55}
#增加可读性:
anchoragePop = census2010.allData['AK']['Anchorage']['pop']
print('The 2010 population of Anchorage was ' + str(anchoragePop))
The 2010 population of Anchorage was 291826openpyxl 3.0版本以上版本升级书写简介点:
import openpyxl, pprint
print('Opening workbook...')
wb = openpyxl.load_workbook('data/censuspopdata.xlsx')
#sheet = wb.get_sheet_by_name('Population by Census Tract') #sheet[0]
sheet = wb['Population by Census Tract']
#countyData将包含你计算的每个县的总人口和普查区数目。但在它里面存储任何东西之前,你应该确定它内部的数据结构。
countyData = {}
print('Reading rows...')
#for row in range(2, sheet.get_highest_row() + 1): #sheet.get_highest_row() 获取最大行数
for row in range(2, sheet.max_row + 1): #新版本只能sheet.max_row获取最大化
state = sheet['B' + str(row)].value #获取值
county = sheet['C' + str(row)].value
pop = sheet['D' + str(row)].value
countyData.setdefault(state, {}) #{state:{}} #setdefault给字典添加键值
#在给后续添加键值
countyData[state].setdefault(county, {'tracts': 0, 'pop': 0}) #{state:{county:{'tracts': 0, 'pop': 0}}}
countyData[state][county]['tracts'] += 1
countyData[state][county]['pop'] += int(pop)
print('Writing results...')
#写入py文件
resultFile = open('census2010.py', 'w')
#使用 pprint.pformat()函数,将变量字典的值作为一个巨大的字符串, 写入文件 census2010.py
resultFile.write('allData = ' + pprint.pformat(countyData))
resultFile.close()
print('Done.')