首页 > 代码库 > 读写文件:excel、outlook、ppt、doc、pdf、xml

读写文件:excel、outlook、ppt、doc、pdf、xml

excel:

读:

技术分享
 1 from  openpyxl.reader.excel import load_workbook #载入excel加载文件
 2 
 3 wb = load_workbook(filename=self.path)  # 载入
 4 if  self.wb!=None:
 5     sheetnames = self.wb.get_sheet_names()  # list
 6     if len(sheetnames)!=0:#至少一个表格
 7          for  sheet  in  sheetnames:
 8                ws = self.wb.get_sheet_by_name(sheet)
 9                for rline in range(1, ws.max_row + 1):  # 循环每一行
10                     for column  in range(1,1+ws.max_column): # 循环每一列
11                          data=http://www.mamicode.com/ws.cell(row=rline, column=column).value
12                          print(data,end="  ")
13                     print("")
View Code

建表并写入:

技术分享
 1 import win32com
 2 import win32com.client#控制
 3 
 4 def makeexcel(name):
 5     print(name)
 6     ex=win32com.client.Dispatch("Excel.Application")
 7     wk=ex.Workbooks.Add()#增加一个工作表
 8     nowwk=wk.ActiveSheet# 焦点表格
 9     ex.Visible=True #可以看见
10 
11     #对角线表格添加内容
12     for  i in range(1,10):
13         nowwk.Cells(i,i).value=http://www.mamicode.com/"hello"+name
14 
15     filename = "C:\\Users\\Tsinghua-yincheng\\Desktop\\" + name + ".xls"
16     wk.SaveAs(filename)  # 保存
17     wk.Close(True)  # flase强行关闭,True等待
18     ex.Application.Quit()  # 退出系统接口
19 
20 names=["A","B","C"]
21 for name in names:
22     makeexcel(name)
View Code

outlook发邮件:

技术分享
 1 import win32com
 2 import win32com.client#控制
 3 
 4 def  makemail(name):
 5     outlook=win32com.client.Dispatch("Outlook.Application")
 6     mail=outlook.createItem(0)#第一封邮件
 7     mail.Recipients.Add("%s@163.com"%name)
 8     mail.Subject=u"亲爱的你好%s"%name
 9     mailtext=u"尊敬的先森"
10     mailtext+=u"         我公司有硅胶娃娃,价格便宜,长得好看,欢迎体验"
11     mail.Body=mailtext
12     mail.Send()
13     outlook.Quit()
14 
15 names=["A","B","C"]
16 for name in names:
17     makemail(name)
View Code

PPT:

技术分享
 1 import win32com
 2 import win32com.client#控制
 3 
 4 def makeppt(name):
 5     try:
 6         ppt=win32com.client.Dispatch("PowerPoint.Application")
 7         pres=ppt.Presentations.Add()#一个PPT多个页面
 8         ppt.Visible=True
 9 
10         s1=pres.Slides.Add(1,1)
11         s1_0=s1.Shapes[0].TextFrame.TextRange #找到第一个文本框
12         s1_0.Text=u"尊敬的%s先森\n"%name
13 
14         s1_1 = s1.Shapes[1].TextFrame.TextRange  # 找到第2个文本框
15         s1_1.InsertAfter(u"      hello world")
16 
17         filename = "C:\\Users\\Tsinghua-yincheng\\Desktop\\" + name + ".ppt"
18         pres.SaveAs(filename)  # 保存
19         pres.Close()  # flase强行关闭,True等待
20         ppt.Application.Quit()  # 退出系统接口
21     except AttributeError:
22         print("error")
23 
24 names=["A","B","C"]
25 for name in names:
26     makeppt(name)
View Code

 

doc:

读:

技术分享
1 import   docx
2 
3 doc=docx.Document(filename)#根据路径打开文件
4 for para in doc.paragraphs:#循环每一个段落
5        print(para.text)#打印文本
View Code

写:

技术分享
 1 import win32com
 2 import win32com.client#控制
 3 
 4 def makeword(name):
 5     print(name)
 6     word=win32com.client.Dispatch("Word.Application")#操作word
 7     doc=word.Documents.Add()#插入文档
 8     word.Visible=True#可以看见
 9 
10     rng=doc.Range(0,0) #操作位置,从00开始
11     rng.InsertAfter(u"尊敬的%s先森\n"%name)
12     rng.InsertAfter(u"     我是Z先生,定于2017.5.20与玉凤大婚,诚邀你来参加我的婚礼")
13     rng.InsertAfter(u"                      此致敬礼")
14 
15     filename="C:\\Users\\Tsinghua-yincheng\\Desktop\\"+name+".doc"
16     doc.SaveAs(filename)#保存
17     doc.Close(True)#flase强行关闭,True等待
18     word.Application.Quit()#退出系统接口
19 
20 names=["A","B","C"]
21 for name in names:
22     makeword(name)
View Code

 

pdf:

读:

技术分享
1 import  PyPDF2
2 pdffile=open("C:\\Users\\Tsinghua-yincheng\\Desktop\\Python拓展.pdf","rb")
3 pdfreader=PyPDF2.PdfFileReader(pdffile)#创建阅读器
4 print(pdfreader.numPages)#显示页数
5 print(type(pdfreader.numPages))
6 for i  in range(pdfreader.numPages):
7     page=pdfreader.getPage(i)
8     print(page.extractText())
9     print("--------------------------------------------")
View Code

XML:

技术分享
 1 from   xml.dom.minidom import  parse
 2 import  xml.dom.minidom  #解析XML
 3 
 4 #打开
 5 DomTree=xml.dom.minidom.parse(r"C:\Users\Tsinghua-yincheng\Desktop\1.xml")
 6 collection=DomTree.documentElement#加载所有元素
 7 if collection.hasAttribute("shelf"): #判断元素有没有shelf属性,
 8     print(collection.getAttribute("shelf"))#显示属性-root
 9 movies=collection.getElementsByTagName("movie")
10 print(movies)
11 for  movie  in  movies: #抓取了后一层列表
12     if movie.hasAttribute("title"):  # 判断元素有没有shelf属性,
13         print(movie.getAttribute("title"))  # 显示属性-root
14 
15 
16     mytype=movie.getElementsByTagName(type)[0]#取出type
17     print("---",mytype.childNodes[0].data)
18 
19     mytype1=movie.getElementsByTagName(format)[0]#取出type
20     print("---",mytype1.childNodes[0].data)
21 
22     mytype2=movie.getElementsByTagName(year)[0]#取出type
23     if len(mytype2.childNodes)==0:
24         pass
25     #print("---",mytype2.childNodes[0].data)
View Code

 

读写文件:excel、outlook、ppt、doc、pdf、xml