简体   繁体   English

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

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

I am trying to develop a user form in python 2.7.3. 我正在尝试在python 2.7.3中开发用户表单。 Please note that I am a python beginner. 请注意,我是一名蟒蛇初学者。

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

Thanks 谢谢

For writing your form, you may want to use Tk - it's built into Python ( import Tkinter ). 对于编写表单,您可能希望使用Tk - 它内置于Python( import Tkinter )中。

For exporting to Excel, there are several options: 要导出到Excel,有几个选项:

  1. write your data to a .csv file ( import csv ) then load it with Excel 将您的数据写入.csv文件( import csv ),然后使用Excel加载它
  2. use a module to write to an .xls file 使用模块写入.xls文件
  3. use .COM automation to "remote-control" Excel 使用.COM自动化来“远程控制”Excel

Edit: ok, here's a more specific answer using Tkinter and xlwt: 编辑:好的,这是使用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()

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM