#导入openpyxl
import openpyxl
wb = openpyxl.load_workbook('example.xlsx') #打开当前工作目录下的example.xlsx文件
wb.sheetnames #获得工作薄中的所有表名的列表
sheet = wb['Sheet2'] #获得工作薄中名为Sheet2的工作表
sheet.title #获得工作表名称
anothersheet = wb.active #获得工作簿中的活动表(打开Excel首先出现的工作表)
sheet['A1'].value #查看Sheet2表中A1单元格的值
c=sheet['B1']
c.value #查看值
c.row #查看行
c.coliumn #查看列
c.coordinate #查看单元格
d = sheet.cell(row=4,column=2) #适用于列属性列表较大时,得到一个单元格
#for循环打印B列
for i in range(1,7):
print(sheet.cell(row=i,column=2).value)
sheet.max_row #查看Sheet2中最大行
sheet.max_column #查看Sheet2中最大列
#这些属性项目(sheetnames、title、active)目测只能在IDLE窗口键入之后查看,或者直接赋值到一个变量中
import openpyxl
#新版由openpyxl.utils导入
from openpyxl.utils import get_column_letter,column_index_from_string
get_column_letter(1) #'A'
get_column_letter(27) #'AA'
get_column_letter(900) #'AHP'
column_index_from_string('A') # 1
column_index_from_string('AA') # 27
import openpyxl
wb = openpyxl.load_workbook('example.xlsx')
sheet = wb['Sheet2']
tuple(sheet['A1':'B3']) #类似于Excel的选择框,输出维一个元组列出他的Cell对象
#循环输出每个单元格,默认先行后列
for row in sheet['A1':'B3']:
for cell in row :
print(cell.coordinate,cell.value)
print('-----------------')
sheet['A'] #选定第1列(A列)
sheet['B'] #选定第2列(B列)
list(sheet.columns)[1] #等价于上面(B列)
sheet['1'] #选定第1行
list(sheet.rows)[0] #等价于上面(第1行)
import openpyxl
wb = openpyxl.Workbook('example.xlsx')
sheet = wb.active
sheet.title #输出初始名
sheet.title = 'new sheet' #重命名Sheet名
wb.save('new_example.xlsx') # 另存为一个新的表格
#工作表操作(这是在new_example.xlsx的继续操作)
wb.create_sheet() #创建一个名为Sheet的工作表
wb.create_sheet(index=0,title='First Sheet') #在工作表列表中0指针处创建一个名为First Sheet的工作表
wb.create_sheet(index=2,title='Middle Sheet') #在工作表列表中0指针处创建一个名为Middle Sheet的工作表
wb.sheetnames
wb.remove(wb['First Sheet']) #删除First Sheet工作表
sheet1 = wb['Middle Sheet']
sheet1['A1'] = 'Hello World' #A1单元格赋值
wb.save('new_example.xlsx') #保存更改
import openpyxl
from openpyxl.styles import Font
wb = openpyxl.Workbook('example.xlsx')
sheet1 = wb['Middle Sheet']
italic24Font = Font(name='Times New Roman',size = 24,bold = True, italic = True) #格式维新罗马字体,24号,加粗,斜体。
sheet1['A1'].font = italic24Font #A1单元格设置为此格式
#键入公式
sheet1['A2'] = '=SUM(B1:B4)+2' #求和公式,其他同理,调用load_workbook()时带有data_only=True时,单元格就会直接显示公式结果,而不是文本
#调整行和列
sheet1.row_dimensions[1].height = 20 #行高
sheet1.column_dimensions['A'].width = 20.0 #列宽
#合并拆分单元格
sheet1.merge_cells('A1:B2') #合并
sheet1.unmerge_cells('A1:B2') #拆分
wb.save('new_example.xlsx')
#图表
refObj = openpyxl.chart.Reference(sheet, min_row = 1, min_col = 1, max_row = 10, max_col = 1) #做表的数据
seriesObj = openpyxl.chart.Series(refObj, title = 'First series')
chartObj = openpyxl.chart.BarChart()
chartObj.title = 'My Chart'
chartObj.append(seriesObj)
sheet.add_chart(chartObj, 'C5') #C5表示图标开始位置
调用sheet.freeze_panes语句冻结一个cell对象的左侧和上方的行列
语句 | 作用 |
---|---|
sheet.freeze_panes = ’A2‘ | 冻结第一行 |
sheet.freeze_panes=’B1‘ | 冻结第一列 |
sheet.freeze_panes= ’C1‘ | 冻结第一列和第二列(A和B列) |
sheet.freeze_panes=’A1‘ 或 sheet.freeze_panes=None | 无冻结 |
#导入程序包提取文本
import PyPDF2
Obj = open('hah.pdf','rb') #打开pdf文件
Reader = PyPDF2.PdfFileReader(Obj) #创建PdfFileReader对象
Reader.numPages #获取PdfFileReader对象的页码属性
page = Reader.getPage(0) # 得到第一页的Page对象
page.extractText() # 返回该页文本的字符串(好像对中文不太管用)
#解密文件
Reader.isEncrypted #查看PDF文件是否存在密码
Reader.decrypt('password') #如果存在,不输入正确的密码就无法访问PdfFIleReader对象
#创建PDF,不能新建,只能拷贝或者加一点修改
#拷贝页面
Obj = open('hah.pdf','rb')
Reader = PyPDF2.PdfFileReader(Obj)
pdfWriter = PDF2.PdfFileWriter() #创建PdfFileWriter对象
for pageNum in range(Reader.numPages):
PageObj = Reader.getPage(pageNum)
pdfWriter.addPage(PageObj) #addPages()写入文本
NewFile = open('newFile.pdf','wb') #创建新PDF文件
pdfWriter.writer(NewFile) #传入
NewFile.close()
Obj.close()
其他
方法 | 作用 |
---|---|
page.rotateClockwise(90) | 使一个page对象顺时针旋转90° |
page.mergePage(page2) | 将两个page对象叠加,附加水印 |
pdfWriter.encrypt(‘password’) | 在调用Write()方法保存之间,调用encrypt() 方法加密PDF |
#导入模块
import docx
#Document表示整个文档
doc =docx.Document('F:\毕业论文\我的论文\内容规范.docx')
len(doc.paragraphs) #查看段落总数
doc.paragraphs[0].text #第一段的纯文本
len(doc.paragraphs[0].runs) #查看Run对象的总数,格式变化就会产生一个显得run
doc.paragraphs[0].runs[0].text #查看第一段第一个run的纯文本
#读取整个文档的函数
import docx
def getText(FileName):
doc = docx.Document(FileName)
fullText = []
for para in doc.paragraphs:
fullText.append(para.text)
return '\n'.join(fullText) #' '是每段缩进,'\n\n'是每段加空行
import docx
doc = docx.Documnet()
doc.add_paragraph('hello world!','title') #以title格式添加一段
para1 = doc.add_paragraph('This is a second paragraph') #添加一段
para2 = doc.add_paragraph('This is a yet another paragraph') #再添加一段
para1.add_run(',add to sencond paragraph') #再para1后添加一个run对象文本
doc.save('hah.docx') #保存
方法 | 作用 |
---|---|
doc.add_heading(‘Header’,‘0’) | 第二个参数可选0-4,'0’表示标题是title格式用于文章顶部,1-4是不同的标题层次 |
doc.paragraphs[0].runs[0].add_break() | 换行 |
doc.paragraphs[0].runs[0].add_break(docx.text.WD_BREAK.PAGE) | 换页 |
doc.add_picture(‘picture.png’,width=docx.shared.Inches(1),height=docx.shared.Cm(4)) | 插入图片 |
ps.Inches()表示英寸。Cm()表示厘米
import csv
File = open('example.csv')
Reader = csv.reader(File)
for row in Reader:
print('Row #' + str(Reader.line_num) + ' ' + str(row))
import csv
outputFile = open('new.csv','w',newline='') #新建
#传递给Writer对象,delimiter= '\t'表示制表符分隔单元格,默认是逗号;lineterminator='\n\n'两倍行距,默认换行符
Writer = csv.writer(outputFile,delimiter= '\t',lineterminator='\n\n')
#写入每一行
Writer.writerow(['spam','eggs','bacon'])
Writer.writerow(['cat','dog','fly'])
outputFile.close()
#模拟一个JSON数据类型
data = '{"name"="jack","isCat"="True","age"=3}'
import json
Value1 = json.loads(data) #loads()读取数据
Value2 = json.dumps(data) #dumps()读取数据
#查看
Value1
Value2