1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > Python让繁琐工作自动化——chapter12 处理Excel电子表格

Python让繁琐工作自动化——chapter12 处理Excel电子表格

时间:2020-02-19 05:08:36

相关推荐

Python让繁琐工作自动化——chapter12 处理Excel电子表格

1. 基本语法

(1)模块导入

import openpyxl

(2)读取表格

wb = openpyxl.load_workbook('文本文件到表格.xlsx')sheet = wb.get_active_sheet() #获得当前sheet表

(3)写入表格

wb = openpyxl.Workbook() #创建一个workbook对象sheet = wb.get_active_sheet()sheet.title = '12.13.1.xlsx' #创建sheet名字wb.save( '12.13.1.xlsx')

(4)常用函数

rowmax = sheet.max_row#当前表格最大行数clnmax = sheet.max_column#当前表格最大列数

from openpyxl.styles import Font#字体修改函数fontobj = Font(name = 'Times New Roman' , size = 24,bold = True, italic = True)#字体名称,字号,粗体,斜体sheet['A3'].font =fontobj

sheet.row_dimensions[1].height =70 #修改行高sheet.column_dimensions['B'].width = 20 #修改列宽

#图表refobj = openpyxl.chart.Reference(sheet,(1,1),(10,1)) #创建Reference对象 (表格对象,左上角起始数据,右下角结束数据位置)seriesobj = openpyxl.chart.Series(refobj,title = 'First Series') #创建Series对象chartobj = openpyxl.chart.BarChart()#图表类型 : .lineChart ScatterChar PieChart 折线图、散点图、饼图chartobj.append(seriesobj)#添加数据构成图表

2.课后习题

1. 创建乘法表

输入N,创建N*N的乘法表

import openpyxlfrom openpyxl.styles import Fontwb = openpyxl.Workbook()sheet = wb.get_active_sheet()sheet.title = '12.13.1.xlsx'n = int(input("创造一个N行N列的乘法表,请输入N: ")) #注意int类型!!fontobj = Font(bold = True)for i in range(1,n+1): #其中一行一列表示乘数sheet.cell(row = 1,column = i+1).value = isheet.cell(row=1, column=i + 1).font = fontobj #第一行粗体sheet.cell(row = i+1,column = 1).value = isheet.cell(row=i + 1, column=1).font = fontobj #第一列粗体for j in range(2,i+2):for k in range(2,i+2):sheet.cell(row = j,column = k).value = (j-1)*(k-1)sheet['A1'] = Nonewb.save( '12.13.1.xlsx')

2. 空行插入程序

输入两个整数N,M,程序从第N行开始,在电子表格中插入M个空行

import openpyxlfrom openpyxl.styles import Fontwb = openpyxl.Workbook()sheet = wb.get_active_sheet()sheet.title = '12.13.1.xlsx'n = int(input("创造一个N行N列的乘法表,请输入N: ")) #注意int类型!!fontobj = Font(bold = True)for i in range(1,n+1): #其中一行一列表示乘数sheet.cell(row = 1,column = i+1).value = isheet.cell(row=1, column=i + 1).font = fontobj #第一行粗体sheet.cell(row = i+1,column = 1).value = isheet.cell(row=i + 1, column=1).font = fontobj #第一列粗体for j in range(2,i+2):for k in range(2,i+2):sheet.cell(row = j,column = k).value = (j-1)*(k-1)sheet['A1'] = Nonewb.save( '12.13.1.xlsx')

3. 电子表格翻转程序

将电子表格中所有行列翻转,如第5行3列→第3行第5列

(思想:利用嵌套for循环将每个单元格的数据读入一个二维列表)

import openpyxlwb = openpyxl.load_workbook('12.13.2.xlsx')sheet1 = wb.get_active_sheet()nb = openpyxl.Workbook()sheet2 = nb.get_active_sheet()rowmax = sheet1.max_rowclmmax = sheet1.max_column#二维列表创建方法sheetdata = [[0 for col in range(clmmax)] for row in range(rowmax)] #创建二位列表存储原数据for i in range(1,rowmax+1):for j in range(1,clmmax+1):sheetdata[i-1][j-1] = sheet1.cell(row = i, column = j).valuesheet2.cell(row = j, column = i).value = sheetdata[i-1][j-1]nb.save('12.13.3 单元格翻转.xlsx')#附二位列表初始化方法2# nums = []# rows = eval(input("请输入行数:"))# columns = eval(input("请输入列数:"))## for row in range(rows):#nums.append([])#for column in range(columns):# num = eval(input("请输入数字:"))# nums[row].append(num)# print(nums)

4. 文本文件到表格

读入几个文本中的文件,将这些内容插入到一个Excel中,每一列表示一个文件,每一行表示一个文件的一行文本内容,如第一个文件共五行,应占据表格第一列的前五行,第二个文件共两行,应占据表格第二列的前两行

import openpyxlimport ostxtfiles = [] #找到当前目录所有的txt文件for txt in os.listdir('.'):if txt.endswith('.txt'):txtfiles.append(txt)wb = openpyxl.Workbook()sheet = wb.get_active_sheet()j=1for file in txtfiles:txt = open(file,'r')i = 1 #第二列从第一行重新开始for line in txt.readlines():sheet.cell(row = i,column =j ).value = linei += 1j += 1wb.save('文本文件到表格.xlsx')

5. 电子表格到文件

和前一个程序相反,将第一列的内容写入一个文件,将第二列的内容写入一个文件

import openpyxlwb = openpyxl.load_workbook('文本文件到表格.xlsx')sheet = wb.get_active_sheet()rowmax = sheet.max_rowclnmax = sheet.max_columnfor i in range(1,clnmax+1):f = open('file'+str(i)+'txt','w') #创建新的txt文件for j in range(1,rowmax+1):content = sheet.cell(row = j ,column = i).valueif content != None:#一定要记得 判断 内容 是否为空!!f.write(content)f.close()

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。