- 乘法表
创建程序 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
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
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,以此类推。
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
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()