私はtkinterとopenpyxlを使ってプログラムを比較するプログラムを作成しました。ここに私のコードです:Tkinterとopenpyxlでそのようなファイルやディレクトリが見つかりません '
import openpyxl, csv
from tkinter import *
from tkinter.filedialog import askopenfilename
from openpyxl.utils import get_column_letter, column_index_from_string
output = open('differences.csv', 'w', newline='')
output_writer = csv.writer(output)
wb1, wb2 = '', ''
sheet1, sheet2 = '', ''
column_1, column_2 = '', ''
root = Tk()
root.configure(background='light green')
root.geometry("500x500")
root.wm_title("BananaCell")
e1 = Text(root, width=15, height=1)
e1.pack()
e1.place(x=70, y=150)
e2 = Text(root, width=15, height=1)
e2.pack()
e2.place(x=300, y=150)
column1_entry = Text(root, width=5, height=1)
column1_entry.pack()
column1_entry.place(x=135, y=250)
column2_entry = Text(root, width=5, height=1)
column2_entry.pack()
column2_entry.place(x=385, y=250)
def destroy():
root.destroy()
def ask_for_filename_1():
global wb1
wb1 = askopenfilename(title="Select Workbook 1")
print(str(wb1))
return wb1
def ask_for_filename_2():
global wb2
wb2 = askopenfilename(title="Select Workbook 1")
print(str(wb2))
return wb2
def ask_for_sheet1():
global sheet1
sheet1 = e1.get("1.0", "end-1c")
print(sheet1)
return sheet1
def ask_for_sheet2():
global sheet2
sheet2 = e2.get("1.0", "end-1c")
print(sheet2)
return sheet2
def get_col_1():
global column_1
c1 = column1_entry.get("1.0", "end-1c")
print(c1)
def get_col_2():
global column_2
c2 = column2_entry.get("1.0", "end-1c")
print(c2)
filename_button1 = Button(root, text="Workbook 1", width=12, height=2, command=ask_for_filename_1)
filename_button1.pack()
filename_button1.place(x=100, y=100)
filename_button2 = Button(root, text="Workbook 2", width=12, height=2,
command=ask_for_filename_2)
filename_button2.pack()
filename_button2.place(x=300, y=100)
col_button1 = Button(root, text="Enter", width=5, height=1, command=get_col_1)
col_button1.pack()
col_button1.place(x=185, y=248)
col_button2 = Button(root, text="Enter", width=5, height=1, command=get_col_2)
col_button2.pack()
col_button2.place(x=435, y=248)
col1 = column_1
col2 = column_2
sheet_button1 = Button(root, text="Enter", width=6, height=0,
command=ask_for_sheet1)
sheet_button1.pack()
sheet_button1.place(x=15, y=147)
sheet_button2 = Button(root, text="Enter", width=6, height=0, command=ask_for_sheet2)
sheet_button2.pack()
sheet_button2.place(x=430, y=147)
label1 = Label(root, text="Sheet 1 column letter: ", bg="light green")
label1.pack()
label1.place(x=10, y=250)
label2 = Label(root, text="Sheet 2 column letter: ", bg = "light green")
label2.pack()
label2.place(x=260, y=250)
workbook1 = openpyxl.load_workbook(str(wb1))
workbook2 = openpyxl.load_workbook(str(wb2))
worksheet1 = workbook1.get_sheet_by_name(str(sheet1))
worksheet2 = workbook2.get_sheet_by_name(str(sheet2))
col1 = column_1
col2 = column_2
def show():
scrollbar = Scrollbar(root)
scrollbar.pack(side=RIGHT, fill=Y)
textbox = Text(root, wrap=WORD, yscrollcommand=scrollbar.set)
textbox.pack()
textbox.place(x=300, y=200)
for (col, col_1) in zip(worksheet1.iter_cols(min_col = column_index_from_string(col1), max_col=column_index_from_string(col1)), worksheet2.iter_cols(min_col = column_index_from_string(col2), max_col=column_index_from_string(col2))):
for (cell, cell_1) in zip(col, col_1):
if cell.value != cell_1.value and cell.row == cell_1.row:
textbox.insert(INSERT, 'Row ' + str(cell.row) + ' ' +
str(cell.value) + ' is not equal to ' + str(cell_1.value) + ' ' + 'Row ' + str(cell_1.row) + '\n')
def write_csv():
for (col, col_1) in zip(worksheet1.iter_cols(min_col = column_index_from_string(col1), max_col=column_index_from_string(col1)), worksheet2.iter_cols(min_col = column_index_from_string(col2), max_col=column_index_from_string(col2))):
for (cell, cell_1) in zip(col, col_1):
if cell.value != cell_1.value and cell.row == cell_1.row:
output_writer.writerow(['Sheet 1 value: ' + ' ' + str(cell.value) + ' ' + 'is not equal to ' + ' ' + 'Sheet 2 value: ' + ' ' + str(cell_1.value) + ' ' + 'on row ' + ' ' + str(cell.row)])
show_button = Button(root, text="Show", width=8, height=1, command=show)
show_button.pack()
show_button.place(x=1, y=20)
button_export = Button(root, text="Export to CSV", width=10, height=1, command=write_csv)
button_export.pack()
button_export.place(x=450, y=60)
dButton = Button(root, text="Done", width=8, height=1, command=destroy)
dButton.pack()
dButton.place(x=100, y=60)
mainloop()
プログラムがクラッシュし、私に次のエラー与える:No such file or directory ''
を、私は予定通り、それは完全に実行されることを確認していません。誰も私のコードをスムーズにコンパイルできるように書き換えることができますか?何かが大丈夫です
誰でもお手伝いできますか? – Bill
[mcve]を作成してください。あなたは、問題の一部ではないように見える多くのコードを投稿しました。また、なぜあなたは 'quit'を呼び出して、後でもっと多くのウィジェットを作成しようとしていますか? 'mainloop'を呼び出した後、より多くのGUIコードを持つことは非常に珍しいことです。 –
@ブライアンオークリー私は答えを明確にしてくれました。誰かが6月15日の締め切りを迎えるのを助けてくれますか? – Bill