先导入openpyxl库,再进行操作
#用openpyxl库打开excel
wb=openpyxl.load_workbook()
#从工作薄中取得工作表
get_sheet_names()
#新建
ws1=wb.create_sheet()
#在指定位置添加工作表,位置0,即第一个
ws2wb.create_sheet(0)
#可以通过两种方式获得单元表
ws3=wb["New Title"]
ws4=wb.get_sheet_by_name("New Title")#返回值是list类型
#获取单元格
c=ws['A4']#利用坐标获取单元格,若单元格不存在,则被创建
ws['A4']=4 #对单元格的值直接赋值
#也可以通过以下两种方式获取单元格
c=ws.cell('A4')
#指定行列获取,从1开始,不从0开始
d=ws.cell(row=4,column=1)
#利用切片方式获取指定区域的单元格
cell_range=ws['A1':'C2']
#获取单元格后写数据
c=ws.cell('A4')
c.value='hello,world'
#对实例化的工作簿调用openpyxl.Workbook.Workbook.save()进行保存
wb.save('sample.xlsx')
路Excel文件(人口普查数据)处理实例
◆问题描述
➢处理2010年美国人口普查数据文件censuspopdata.xlsx, Excle文件中只有一-张表,名为’Population by Census Tract’。每- -行都保存了-个普查区的数据。列分别是普查区的编号(A),州的简称(B),县的名称©, 普查区的人口(D)。
题目要求
➢编写程序,从人口普查Exce|文件中读取数据,并计算出每个县的人口统计值。
➢题目要求以字典嵌套字典方式存储统计信息,最外层字典的键是州,州里的键是县,县里的键是pop和人口普查区数量。
dict={州*:{ ‘县1": {pop’:9000,'人口普查区: 2},},}
import openpyxl,pprint
print('Opening workbook...')
wb=openpyxl.load_workbook(r'C:\Users\lenovo\Desktop\censuspopdata.xlsx')#获取人口统计sheet工作表
sheet=wb.get_sheet_by_name('Population by Census Tract')
countyData={}#定义统计结果保存字典
print('Reading rows...')
for row in range(2,sheet.max_row+1):#从Excel文件第二行看是至最后一行。前闭后开,不包括max_row+1
state=sheet['B'+str(row)].value #读取州名
county=sheet['C'+str(row)].value #读取县名
pop=sheet['D'+str(row)].value #读取人口数
countyData.setdefault(state,{})
countyData[state].setdefault(county,{'tracts':0,'pop':0})
countyData[state][county]['tracts']+=1 #该县的人口普查次数加1
countyData[state][county]['pop']+=int(pop) #该县所有普查次区人口数量相加
print('Writing results...')
resultFile=open('census2010.py','w')
resultFile.write('allData='+pprint.pformat(countyData))
#pprint生成一个字符串,格式化好的、有效的python代码
resultFile.close()
print('Done.')
本文介绍如何利用Python的openpyxl库处理2010年美国人口普查数据,读取Excel文件中的'Population by Census Tract'表格,计算每个县的人口统计值,并以字典嵌套字典的方式存储统计信息,键包括州和县,包含人口总数和普查区数量。

1万+

被折叠的 条评论
为什么被折叠?



