windows小工具txt轉xlsx

前言

4月換了份新工作。在新環境下要學習的地方很多;工作側重點也有所改變。當然工作也更忙了。下班閒暇之餘敲敲代碼寫寫自己的程序也是一種享受IT職業的方式。
言歸正傳,換了新工作後我依然沒有逃避txt轉xlsx的問題,天天都在手動打開txt設值分隔符。某天終於按耐不住這重複無聊的步驟,於是基於《windows二維碼工具3.0》寫了這個小工具。

正文

內容

  1. txt 轉 xlsx 網上源碼真的很多
  2. 界面設計上,由於工作中需要一次轉20多個txt,所以選擇批處理方式。
  3. 合併單元格,日期格式,金額格式,小數點。xlsx格式這一直是頭大的問題。但慶幸的是在我的工作中完全不需要設置xlsx格式,所以內容都是以“字符串”寫入單元格,無合併單元格。
  4. 運行環境需要安裝 Visual C++ Redistributable for Visual Studio 2015 安裝包

演示

gif演示動畫

部分代碼

class WriteThread(QtCore.QThread):
    '''
    工作線程,處理txt轉xlsx
    '''
    _signal = pyqtSignal(int, str)

    def __init__(self, srcfiles, dstfiles, split, coding):
        super(WriteThread, self).__init__()
        self.srcfiles = srcfiles
        self.dstfiles = dstfiles
        self.split = split
        self.coding = coding

    def run(self):
        currentfile = ''
        try:
            for i in range(len(self.srcfiles)):
                currentfile = self.srcfiles[i]
                self.txt_to_xlsx(self.srcfiles[i], self.dstfiles[i], self.split, self.coding)
            self._signal.emit(0, "OK")
        except Exception as e:
            self._signal.emit(-1, currentfile + ':' + str(e))
    def txt_to_xlsx(self, filename, outfile, split, encoding):
        fr = codecs.open(filename, 'r', encoding=encoding)
        wb = openpyxl.Workbook()
        ws = wb.active
        row = 0
        for line in fr:
            row += 1
            line = line.strip()
            line = line.split(split)
            col = 0
            for j in range(len(line)):
                col += 1
                ws.cell(column=col, row=row, value=line[j])
        wb.save(outfile)

打包exe說明

  1. 環境使用virtualenv (annaconda環境下打包exe會非常的大)
  2. 安裝pyqt5 openpyxl pyinstaller
  3. 打包命令
    pyinstaller -F -w txt2xlsx.py 或 pyinstaller txt2xlsx.spec

感悟

實際工具不難寫,開發初期寫了個cmd版本,在工作中試用了一天。實測可以滿足需求,後續花了幾個小時完成了界面開發。小工具滿足自己的需求,也給大家參考參考,最最重要的還是要想法去折騰。所以我也自己琢磨着搞個小程序,收集些需求空閒之餘折騰下。

源代碼和工具下載

鏈接: https://pan.baidu.com/s/1bkITnqW85KNC0CSw52XuSQ
提取碼: swca

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章