【问题标题】:How to export user inputs (from python) to excel worksheet?如何将用户输入(来自python)导出到excel工作表?
【发布时间】:2018-03-30 00:09:58
【问题描述】:

我正在尝试在 python 2.7.3 中开发用户表单。请注意,我是 python 初学者。

如何将用户输入(从 python)导出到 excel 工作表?

谢谢

【问题讨论】:

    标签: python excel user-interface user-input


    【解决方案1】:

    要编写表单,您可能需要使用 Tk - 它内置于 Python (import Tkinter)。

    对于导出到 Excel,有几个选项:

    1. 将您的数据写入 .csv 文件 (import csv),然后使用 Excel 加载它
    2. 使用模块写入 .xls 文件
    3. 使用 .COM 自动化“远程控制”Excel

    编辑:好的,这是使用 Tkinter 和 xlwt 的更具体的答案:

    import Tkinter as tk
    import xlwt
    from xlwt.Utils import cell_to_rowcol2
    
    class MyForm(tk.Frame):
        def __init__(self, master=None, cnf={}, **kw):
            tk.Frame.__init__(self, master, cnf, **kw)
    
            self.fname = tk.StringVar(value="myfile.xls")
            self.sheet = tk.StringVar(value="sheet1")
            self.cell  = tk.StringVar(value="x1")
            self.value = tk.StringVar(value="1234")
    
            tk.Label(master, text="File").grid(row=0, column=0, sticky=tk.E)
            tk.Entry(master, textvariable=self.fname).grid(row=0, column=1, padx=4, pady=4)
    
            tk.Label(master, text="Sheet").grid(row=1, column=0, sticky=tk.E)
            tk.Entry(master, textvariable=self.sheet).grid(row=1, column=1, padx=4, pady=4)
    
            tk.Label(master, text="Cell").grid(row=2, column=0, sticky=tk.E)
            tk.Entry(master, textvariable=self.cell).grid(row=2, column=1, padx=4, pady=4)
    
            tk.Label(master, text="Value").grid(row=3, column=0, sticky=tk.E)
            tk.Entry(master, textvariable=self.value).grid(row=3, column=1, padx=4, pady=4)
    
            go = tk.Button(master, text="Do it!", command=self.write_to_xls).grid(row=4, column=1, padx=4, pady=4, sticky=tk.W)
            self.grid()
    
        def write_to_xls(self):
            # create new workbook
            wb = xlwt.Workbook()
    
            # add sheet using given name
            ws = wb.add_sheet(self.sheet.get())
    
            # get offset of cell to write to
            row,col = cell_to_rowcol2(self.cell.get())
    
            # write text to cell
            ws.write(row, col, self.value.get())
    
            # save to given file name
            wb.save(self.fname.get())
    
    def main():
        master = tk.Tk()
        myform = MyForm(master)
        tk.mainloop()
    
    if __name__=="__main__":
        main()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-11-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-20
      相关资源
      最近更新 更多