#coding=UTF-8
import os
import xlrd
import win32ui
import datetime
def xls_txt():
"""
:excel檔案轉換為txt檔案
:param xls_name excel 檔案名稱
:param txt_name txt 檔案名稱
"""
num = 1
try:
values = "";
dlg = win32ui.CreateFileDialog(1) # 1表示打開檔案對話框
dlg.SetOFNInitialDir('') # 設定打開檔案對話框中的初始顯示目錄
dlg.DoModal()
filename = dlg.GetPathName()
data = xlrd.open_workbook(filename)
l=str(os.path.basename(filename))
l=l[0:4]
now = datetime.datetime.now().strftime('%Y%m%d')
d= str(l)+"_"+str(now)+".txt"
sqlfile = open(d, "a")
table = data.sheets()[0] # 表頭
nrows = table.nrows # 行數
#如果不需跳過表頭,則將下一行中1改為0
for ronum in range(0, nrows):
row = table.row_values(ronum)
#values = strs(row) # 條用函式,將行資料拼接成字串
for i in range(len(row)):
ctype = table.cell(num, i).ctype
print (ctype)
cell = table.cell_value(num, i)
if ctype == 2 and cell % 1 == 0.0: # ctype為2且為浮點
row = int(row[i]) # 浮點轉成整型
values = values + str(row) + " "
elif ctype == 1:
values = values + str(row[i]) + " " #使用“ ”TABLE作為分隔符
print(values)
sqlfile.writelines(values+"\r") #將字串寫入新檔案
sqlfile.close() # 關閉寫入的檔案
except:
raise
if __name__ == '__main__':
xls_txt()
表格資料如下:

運行結果提示Numerator被判斷為浮點數?
uj5u.com熱心網友回復:
row = int(row[i]) # 浮點轉成整型values = values + str(row) + " "
改為
values = values + str(row[i]) + " "
行不
uj5u.com熱心網友回復:
試了不行,一樣報錯,這個問題的關鍵是為啥文本的單元格會被識別為浮點數的
uj5u.com熱心網友回復:
str(row)print(row)看看是啥,
感覺這里應該是str(cell)呢
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/41866.html
上一篇:求助帖 用Python怎么實作
