Python编程快速上手12章处理 Excel 电子表格(下)

  • 乘法表
    创建程序 multiplicationTable.py,从命令行接受数字 N,在一个 Excel 电子表格
    中创建一个 N×N 的乘法表。例如,如果这样执行程序:
    py multiplicationTable.py 6
import openpyxl
from openpyxl.styles import Font
tempNum = 6
wb = openpyxl.Workbook()
sheet = wb.active
#从1到N打印第一行和第一列,并加粗字体
#也可以使用list(sheet.rows)[1]和list(sheet.column)[1]取出tuple后遍历
for i in range(1,tempNum+1):
    sheet.cell(row=1,column=i+1).value = i
    sheet.cell(column=1,row=i+1).value = i
    boldFont = Font(bold=True)
    sheet.cell(row=1,column=i+1).font = boldFont
    sheet.cell(column=1, row=i + 1).font = boldFont
#把乘法表结果写入
for i in range(2,tempNum+2):
    for j in range(2,tempNum+2):
        sheet.cell(row=i,column=j).value = i * j
wb.save('output\\project01.xlsx')
  • 空行插入程序
    创建一个程序 blankRowInserter.py,它接受两个整数和一个文件名字符串作为
    命令行参数。我们将第一个整数称为 N,第二个整数称为 M。程序应该从第 N 行开
    始,在电子表格中插入 M 个空行。例如,如果这样执行程序:
    python blankRowInserter.py 3 2 myProduce.xlsx
import os,openpyxl
tempN = 3
tempM = 4
#读取文件
wb = openpyxl.load_workbook('example.xlsx')
sheet = wb.active
#创建对象
wb2 = openpyxl.Workbook()
sheet2 = wb2.active
#写入前两行
for rowObj in range(1,tempN):
    for cellObj in range(1,sheet.max_column+1):
        sheet2.cell(column=cellObj,row=rowObj).value = sheet.cell(column=cellObj,row=rowObj).value
#写入后面的行,行数加M
for rowObj in range(tempN,sheet.max_row):
    for cellObj in range(1,sheet.max_column+1):
        sheet2.cell(column=cellObj,row=rowObj+tempM).value = sheet.cell(column=cellObj,row=rowObj).value
#保存至文件
wb2.save('output\\project02.xlsx')
  • 电子表格单元格翻转程序
    编写一个程序,翻转电子表格中行和列的单元格。例如,第 5 行第 3 列的值将
    出现在第 3 行第 5 列(反之亦然)。这应该针对电子表格中所有单元格进行。
import openpyxl
#创建要读取的对象
wb = openpyxl.load_workbook('example.xlsx')
sheet = wb.active
#创建要写入的对象
wb2 = openpyxl.Workbook()
sheet2 = wb2.active
for i in range(1,sheet.max_row):
    for j in range(1,sheet.max_column):
        sheet2.cell(row=j,column=i).value = sheet.cell(row=i,column=j).value
wb2.save('output\\projct03.xlsx')
  • 文本文件到电子表格
    编写一个程序,读入几个文本文件的内容(可以自己创造这些文本文件),并
    将这些内容插入一个电子表格,每行写入一行文本。第一个文本文件中的行将写入
    列 A 中的单元格,第二个文本文件中的行将写入列 B 中的单元格,以此类推。
    利用 File 对象的 readlines()方法,返回一个字符串的列表,每个字符串就是文件中
    的一行。对于第一个文件,将第一行输出到列 1 行1。第二行应该写入列 1 行2,以此
    类推。下一个用 readlines()读入的文件将写入列2,再下一个写入列3,以此类推。
#遍历一个dir,过滤出txt文本
#file。readline,1行1列,1行2列。。。
#file。readline02,2行1列,2行2列。。。
import openpyxl,os
dirObj = os.getcwd()
wb = openpyxl.Workbook()
sheet = wb.active
txtFile = []
for filename in os.listdir(dirObj):
    if not filename.endswith('.txt'):
        continue
    print(filename)
    txtFile.append(filename)
for i in range(1,len(txtFile)+1):
    file = open(os.path.join(dirObj, txtFile[i-1]))
    fileLine = file.readlines()
    for j in range(1,len(fileLine)+1):
        temp = fileLine[j-1].strip('\n')
        print(temp)
        sheet.cell(row=i,column=j).value = temp
wb.save('output\\project04.xlsx')
  • 电子表格到文本文件
    编写一个程序,执行前一个程序相反的任务。该程序应该打开一个电子表格,将列
    A 中的单元格写入一个文本文件,将列B 中的单元格写入另一个文本文件,以此类推。
import openpyxl,os
#将列A 中的单元格写入一个文本文件,将列B 中的单元格写入另一个文本文件
#读取xlsx文件,按列读取数据,
#将读取的数据加上‘/n’,写入到文件
wb = openpyxl.load_workbook('example.xlsx')
sheet = wb.active
for i in range(1,sheet.max_column+1):
    outputFile = open('output\\spam%s.txt'%(i),'w')
    for j in range(1,sheet.max_row+1):
        temp = str(sheet.cell(row=j,column=i).value) + '\n'
        outputFile.write(temp)
    outputFile.close()
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值