現有一個文本格式的客戶報價單數據item.txt如下圖所示:
橫線之前的行是複雜的表頭,之後的每一行是一條報價記錄,記錄之間有空行。圖中所示隻是一個表頭和報價記錄區,這樣的區域在文本文件中會不斷地重複出現。紅框所示分别是Unit Price和Exp. Date字段列,中間還有Quotation Number、Customer Code、Customer Name字段列,各列數據之間都是空格。
現在需要把文本文件中的報價單數據提取出來,存到Excel文件中如下圖所示:
1、 觀察并發現文本中的規律
我們發現這個文本有這樣的規律:
(1)、少于136個字符的行都沒有有效信息,可以跳過
(2)、所需數據位于每行59列至136列
(3)、把每行有效信息部分按空格為分隔符拆分,若第1個拆分值是數值類型,則此行是報價記錄,否則可跳過。第1個拆分值是Unit Price列,第2個是Quotation Number列,第3個是Customer Code列,最後1個是Contract Expiry Date列,第4個至倒數第2個用空格連接起來是Customer Name列。
不同文本數據的規律可能不一樣,但總是要有規律才能解析。
2、 運行集算器
可去潤乾官網下載職場版,同時下載一個免費授權就夠了,首次運行時會提示加載。
編寫腳本:
把代碼列出來看得清楚點:
A1 創建目标數據集
A2 打開報價單文本文件item.txt,讀入文件内容,選項@n表示每一行讀成一個字符串
A3 循環處理每一行文本,實施前面找出來的規律
B3C3 如果本行長度小于136,則跳過此行
B4 提取本行數據的第59至136列
C4 對B4中提取出來的數據按空白符進行拆分,選項t表示拆分後去除兩端的空白,選項p表示把拆分後的串解析成對應的數據類型
B5C5 如果C4拆分出的第一個值不是數值類型,則跳過此行
B6 将C4拆分出來的第4個值到倒數第二個值用空格連接成串
B7 将C4拆分出的第3個值、B6、C4拆分出的第2個值、第1個值、最後一個值按順序插入到A1的新記錄中
A8 将所有提取的數據保存到Excel文件item.xlsx中
3、 按F9運行這段程序,可以看到E:/txt2excel/item.xlsx文件已經生成了
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!