miduo_client/data_execl/excelTool/test.py

113 lines
3.0 KiB
Python
Raw Normal View History

2020-06-18 20:39:29 +08:00
import xlwt
import xlrd
import os
#
import sys
reload(sys)
sys.setdefaultencoding('utf8')
# test
class Test():
_ExportConfigXlsx = os.getcwd() + '/ExportConfig.xlsx'
_ExportConfig = {}
_col_offset = 6
translateXlsx = []
excelFilePath = os.getcwd() + '/../base_data/'
_ExportData = {}
_ExportPath = os.getcwd() + '/Export/'
_ExportName = "LanguageXlsx"
def Show(self):
# print(self.excelFilePath)
# self.FindTranslateXlsx(self.excelFilePath)
self.LoadExportConfig()
self.Export()
def LoadExportConfig(self):
_workBook = xlrd.open_workbook(self._ExportConfigXlsx, 'rb')
if _workBook:
_workSheet = _workBook.sheet_by_index(0)
for _rIndex in range(_workSheet.nrows):
if _rIndex != 0:
_rData = _workSheet.row_values(_rIndex)
self._ExportConfig[_rIndex - 1] = _rData
else:
print("Error: Unknow ExportConfig")
def Export(self):
for _index in range(len(self._ExportConfig)):
_row = self._ExportConfig[_index]
_path = self.excelFilePath + _row[0] + ".xlsx"
print("Read:"+_path)
for i in range(len(_row)):
if i != 0 and _row[i] != "":
colNum = self.ColToNum(_row[i])
self.ReadXlsxData(_path, colNum)
self.WriteXlsxData()
# get line num
def ColToNum(self, colStr):
i = 0
l = len(colStr)
num = 0
while i < l:
num += ((ord(colStr[l - i - 1]) - 65) * (26 ** i))
i = i + 1
return num
# def FindTranslateXlsx(self, _file_dir):
# _fileList = os.listdir(_file_dir)
# for _files in _fileList:
# _filePath = os.path.join(_file_dir, _files)
# if os.path.isdir(_filePath):
# self.FindTranslateXlsx(_filePath)
# else:
# self.translateXlsx.append(_filePath)
# self.ReadXlsxData()
def ReadXlsxData(self, _path, _colNum):
_workBook = xlrd.open_workbook(_path, 'rb')
_workSheet = _workBook.sheet_by_index(0)
_cData = _workSheet.col_values(_colNum)
for _index in range(len(_cData)):
if _index >= self._col_offset:
self._ExportData[str(_cData[_index])] = []
def WriteXlsxData(self):
print("Writing...")
_savePath = self._ExportPath + self._ExportName +'.xls'
_workBook = xlwt.Workbook(encoding='utf-8')
_workSheet = _workBook.add_sheet(self._ExportName)
_title = ['original', 'tchinese', 'english', 'korean']
_titleIndex = 0
for _content in _title:
_workSheet.write(0, _titleIndex, _content)
_titleIndex += 1
_cIndex = 1
for ol in self._ExportData:
_workSheet.write(_cIndex, 0, str(ol))
_cIndex += 1
_workBook.save(_savePath)
print("Write Done")
t = Test()
t.Show()