一 函数功能 1 本文实现了打开 txt、word、excel 格式文件 2 读取文件内容 3 并打印到text.Browser上
二 源码 import docx from xlrd import open_workbook @pyqtSlot() defon_menu_files_open_triggered(self): ## win32com 对Python3.x 支持效果不好,弃用之 # from win32com import client as wc # word = wc.Dispatch('Word.Application') # word.Visible = 0 print("打开") dialog = QFileDialog() my_file_path = dialog.getOpenFileName(self,"打开文件", "E:\\7Program\\Pycharm\\PyQt\\eric6-19.03\\Workspace\\")[0] print(my_file_path) if my_file_path[-4:]=='.doc'or my_file_path[-5:]=='.docx': # my_worddoc = word.Documents.Open(my_file_path.replace('/', '\\')) # print(type(my_worddoc)) # my_count = my_worddoc.Paragraph.Count # for i in range(my_count): # my_pr = my_worddoc.paragraph[i].Range # print(my_pr.text) # self.textBrowser.append(my_pr.text) # my_worddoc.Close() ## 采用 python-docx # my_doc = docx.Document(my_file_path.replace('/', '\\')) # # print(my_doc.paragraphs[0].text) # for my_paragraph in my_doc.paragraphs: # print(my_paragraph.text) # self.textBrowser.append(my_paragraph.text) self.textBrowser.append(read_docx(my_file_path.replace('/','\\'))) elif my_file_path.endswith('.xlsx'): print('excel!') wb = open_workbook(my_file_path.replace('/','\\')) for s in wb.sheets(): for row inrange(s.nrows): for col inrange(s.ncols): print(s.cell(row, col).value) elif my_file_path[-4:]=='.txt': f =open(my_file_path[0],'r', encoding="utf-8") my_data = f.read() f.close() self.textBrowser.append(my_data) else: QMessageBox.information(self,'Information','不支持的文件格式')
三 注意事项 1 win32com 对Python3.x 支持效果不好 建议使用python-docx、xlrd、xlwt 第三方库 2 encoding 3 path "/" 转义 4 cell 类的用法 5 具体可以参考官方库文档
下面是三木小小推的二维码,欢迎订阅呦~~ ---------------------------------------------------------------------------------------------------------------------- 我们尊重原创,也注重分享,文章来源于微信公众号:三木小小推,建议关注公众号查看原文。如若侵权请联系qter@qter.org。 ----------------------------------------------------------------------------------------------------------------------