我是在pycharm中实现的,用其他也行,首先你要用Anaconda命令导入这个库:
conda install openpyxl
这个库是支持Excel 2010以后 xlsx/xlsm/xltm/xltx 文件的Python库
实战问题描述:
处理1.xlsx文件里有一张表,名为test。
表的数据如下:
简单描述一下,假设可以看成一个人口普查表,每一行为一个普查地区的相关信息,第一列为普查地代号,第二列为洲代号,第三列为县代号,第四列为该县人数,现在让你统计每个县的普查总人数和普查次数
接着上代码
import openpyxl, pprint # pprint是为了输出结果方便看
print('Opening workbook...')
wb = openpyxl.load_workbook(r'D:\python项目\1.xlsx')
sheet = wb.get_sheet_by_name('test') # 获取人口统计Sheet工作表
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(r'D:\python项目\result.txt', 'w') #最后结果保存在result.txt里
resultFile.write(' allData = ' + pprint.pformat(countyData))
# pprint生成一个字符串,格式化好的、有效的python 代码
resultFile.close()
print('Done.')
运行后打开result.txt
得到结果:
简单说明一下,这是一个字典,‘ADASFFA’可以看成一个洲,它包含三个县’ASDA’ ‘HGJL’ '‘JGHJFJ’,它们又分别包含该县普查区人口总数和该县普查区个数
总结一下,想要学好,还得多了解openpyxl库里面的一些方法才行!