如何将用户输入(从python)导出到excel工作表? [英] How to export user inputs (from python) to excel worksheet?

查看:557
本文介绍了如何将用户输入(从python)导出到excel工作表?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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



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



谢谢

解决方案

为了编写你的表单,你可能想使用Tk - 它内置在Python中(导入Tkinter )。



要导出到Excel,有几个选项:



<将您的数据写入.csv文件( import csv ),然后使用Excel加载
  • 使用模块写入.xls文件

  • 使用.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.Strin gVar(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 = 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,p adx = 4,pady = 4,sticky = tk.W)
    self.grid()

    def write_to_xls(self):
    #创建新的工作簿
    wb = xlwt.Workbook()

    #使用给定名称添加工作表
    ws = wb.add_sheet(self.sheet.get())

    #获取偏移量单元格写入
    行,col = cell_to_rowcol2(self.cell.get())

    #将文本写入单元格
    ws.write(row,col,self.value .get())

    #保存到给定的文件名
    wb.save(self.fname.get())

    def main():
    master = tk.Tk()
    myform = MyForm(master)
    tk.mainloop()

    如果__name __ ==__ main__:
    main )


    I am trying to develop a user form in python 2.7.3. Please note that I am a python beginner.

    How to export user inputs (from python) to excel worksheet?

    Thanks

    解决方案

    For writing your form, you may want to use Tk - it's built into Python (import Tkinter).

    For exporting to Excel, there are several options:

    1. write your data to a .csv file (import csv) then load it with Excel
    2. use a module to write to an .xls file
    3. use .COM automation to "remote-control" Excel

    Edit: ok, here's a more specific answer using Tkinter and 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()
    

    这篇关于如何将用户输入(从python)导出到excel工作表?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

    查看全文
    登录 关闭
    扫码关注1秒登录
    发送“验证码”获取 | 15天全站免登陆