我将所有数据填入表格,然后导出文件(CSV)。到目前为止还可以。但是,当我打开CSV文件时,我注意到我填充的行之间有空行。怎么解决呢?运行代码,填写表格,导出并查看文件以了解。非常感谢你。上帝保佑你。
from tkintertable import TableCanvas, TableModel
from tkinter import *
root=Tk()
t_frame=Frame(root)
t_frame.pack(fill='both', expand=True)
table = TableCanvas(t_frame, cellwidth=60, thefont=('Arial',12),rowheight=18, rowheaderwidth=30,
rowselectedcolor='yellow', editable=True)
table.show()
root.mainloop()
如果您在记事本或其他基本文本编辑器中打开CSV文件,则会看到该数据已保存,每行数据之间都有空格。因为EXCEL会在每行中读取CSV,所以它将始终以这种方式导入EXCEL。
[您唯一能做的就是手动输入并从CSV中删除行,建立一个宏以在事件发生后为您清除,或编辑发生问题的tkintertable
库。
[tkintertable
的GitHub使用页面]似乎没有导出到CSV的任何详细信息,此问题可以解决。我猜这个库如何处理数据只是一个问题。
即使添加运行命令以导出的按钮,您也会遇到相同的问题。
def export_to_csv():
table.exportTable()
Button(root, text='test CSV', command=export_to_csv).pack()
更新:
[进行一些挖掘并认识到tkintertable
使用csv
librarty写入csv之后,我对使用csv
库写入csv的同一问题进行了一些搜索,发现了这篇文章(csv.write skipping lines when writing to csv)。在那篇文章中,我在tkintertable
库中进行了一些挖掘,以查找编写的位置以及所发现的内容。
在数据之间插入新行似乎是csv
库如何写入数据的结果。如果我们进行深入研究,您会发现将表格写入CSV的tkintertable
类称为ExportTableData
。该类如下:
class TableExporter:
def __init__(self):
"""Provides export utility methods for the Table and Table Model classes"""
return
def ExportTableData(self, table, sep=None):
"""Export table data to a comma separated file"""
parent=table.parentframe
filename = filedialog.asksaveasfilename(parent=parent,defaultextension='.csv',
filetypes=[("CSV files","*.csv")] )
if not filename:
return
if sep == None:
sep = ','
writer = csv.writer(open(filename, "w"), delimiter=sep)
model=table.getModel()
recs = model.getAllCells()
#take column labels as field names
colnames = model.columnNames
collabels = model.columnlabels
row=[]
for c in colnames:
row.append(collabels[c])
writer.writerow(row)
for row in recs.keys():
print(row)
writer.writerow(recs[row])
return
如果我们更新此行:
writer = csv.writer(open(filename, "w"), delimiter=sep)
加入lineterminator = '\n'
,您会发现问题已消失:
writer = csv.writer(open(filename, "w"), delimiter=sep, lineterminator = '\n')
结果:
记住编辑库可能不是一个好主意,但在这种情况下,我认为这是您唯一的选择。
要进入此类,您需要在Tables_IO.py
库中打开名为tkintertable
的python文件。
如果使用的是PyCharm,则可以使用CTRL +左键单击浏览库文件。
首先按Ctrl键并单击导入名称。然后,您将按住Ctrl键并单击导入名称。然后,您将搜索一个名为exportTable
的类方法,然后在该方法内按住Ctrl键并单击。这将带您进入您可以编辑以解决问题的上述课程。
[请注意不要编辑任何其他内容,因为您很容易破坏库,并且在发生这种情况时需要重新安装它。