vb.net读取excel并写入dgv_读取PDF中的表格写入EXCEL?30行代码搞定
辦公自動(dòng)化系列+1
現(xiàn)在,各類(lèi)數(shù)據(jù)分析的書(shū)籍,都可以在網(wǎng)上找到PDF版本;
同時(shí),百度文庫(kù)、各類(lèi)數(shù)據(jù)統(tǒng)計(jì)文庫(kù)、行業(yè)研究等眾多論文報(bào)告,是通過(guò)PDF的形式去展示輸出的;
但是,令人都頭疼的是,各類(lèi)數(shù)據(jù)分析書(shū)中,PDF版本中的表格數(shù)據(jù),我們想轉(zhuǎn)化成自己的數(shù)據(jù)庫(kù)文件,或者EXCEL文件,卻是很難編輯;
今天,就給大家解決這個(gè)問(wèn)題,利用Python,將PDF中的表格和數(shù)據(jù)讀取出來(lái),并寫(xiě)入EXCEL中保存到本地;
先上代碼,代碼只有30行;
源PDF文件中的表格數(shù)據(jù):
代碼:
#?-*-?coding:?utf-8?-*-"""
請(qǐng)確保你在運(yùn)行這個(gè)代碼的時(shí)候,已經(jīng)安裝了pdfplumber庫(kù)
如果沒(méi)有安裝,請(qǐng)?jiān)赱附件-命令提示符]下輸入:
pip?install?pdfplumber
"""
import?pdfplumber
import?xlwt
#?定義保存Excel的位置
workbook?=?xlwt.Workbook()??#定義workbook
sheet?=?workbook.add_sheet('Sheet1')??#添加sheet
i?=?0?#?Excel起始位置
path?=?input("請(qǐng)輸入PDF文件位置:")
#path?=?"aaaaaa.PDF"??#?導(dǎo)入PDF路徑
pdf?=?pdfplumber.open(path)
print('\n')
print('開(kāi)始讀取數(shù)據(jù)')
print('\n')
for?page?in?pdf.pages:
????#?獲取當(dāng)前頁(yè)面的全部文本信息,包括表格中的文字
????#?print(page.extract_text())
????for?table?in?page.extract_tables():
????????#?print(table)
????????for?row?in?table:
????????????print(row)
????????????for?j?in?range(len(row)):
????????????????sheet.write(i,?j,?row[j])
????????????i?+=?1
????????print('----------?分割線?----------')
pdf.close()
#?保存Excel表
workbook.save('保存路徑/文件名.xls')
print('\n')
print('寫(xiě)入excel成功')
print('保存位置:')
print('保存路徑/文件名.xls')
print('\n')
input('PDF取讀完畢,按任意鍵退出')
最終導(dǎo)出的EXCEL文件:
簡(jiǎn)簡(jiǎn)單單30行代碼,就將PDF中的表格數(shù)據(jù)讀取出來(lái),并寫(xiě)入EXCEL啦;
拓展:
1、pdfplumber簡(jiǎn)介
Pdfplumber是一個(gè)可以處理pdf格式信息的庫(kù)。可以查找關(guān)于每個(gè)文本字符、矩陣、和行的詳細(xì)信息,也可以對(duì)表格進(jìn)行提取并進(jìn)行可視化調(diào)試。
2、pdfplumber安裝
安裝直接采用pip即可。命令行中輸入
pip?install?pdfplumber3、簡(jiǎn)單使用
import?pdfplumberwith?pdfplumber.open("path/to/file.pdf")?as?pdf:
????first_page?=?pdf.pages[0]
????print(first_page.chars[0])
pdfplumber.pdf中包含了.metadata和.pages兩個(gè)屬性。
- .metadata是一個(gè)包含pdf信息的字典。
- .pages是一個(gè)包含頁(yè)面信息的列表。
每個(gè)pdfplumber.page的類(lèi)中包含了幾個(gè)主要的屬性。
- .page_number 頁(yè)碼
- .width 頁(yè)面寬度
- .height 頁(yè)面高度
- .objects/.chars/.lines/.rects 這些屬性中每一個(gè)都是一個(gè)列表,每個(gè)列表都包含一個(gè)字典,每個(gè)字典用于說(shuō)明頁(yè)面中的對(duì)象信息, 包括直線,字符, 方格等位置信息。
4、一些常用的方法
- .extract_text() 用來(lái)提取頁(yè)面中的文本,將頁(yè)面的所有字符對(duì)象整理為的那個(gè)字符串
- .extract_words() 返回的是所有的單詞及其相關(guān)信息
- .extract_tables() 提取頁(yè)面的表格
python自動(dòng)化辦公寶典
其中?《python自動(dòng)化辦公寶典》?共包含六個(gè)章節(jié)97頁(yè),不僅有詳細(xì)的代碼解釋,而且還有詳細(xì)的圖文說(shuō)明,通俗易懂,讓你輕松完成辦公自動(dòng)化。
- python使用openpyxl操作excel;
- python使用PyPDF2和pdfplumber操作pdf;
- python使用python-docx操作word;
- python使用python-pptx操作PPT;
- python如何自動(dòng)收發(fā)郵件;
- python制作電話(huà)號(hào)碼歸屬地查詢(xún)工具;
后臺(tái)回復(fù)關(guān)鍵詞:自動(dòng)化? 即可獲得 !!!
下面這本書(shū)限時(shí)300積分兌換哦
也可參加當(dāng)當(dāng)活動(dòng)每滿(mǎn)100減50
感謝北京大學(xué)出版社的大力支持
總結(jié)
以上是生活随笔為你收集整理的vb.net读取excel并写入dgv_读取PDF中的表格写入EXCEL?30行代码搞定的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: apache php 脚本,PHP脚本不
- 下一篇: 机器人 蓝buff 钩_机器人要在S赛登