Найти - Пользователи
Полная версия: Excel, ввод данных
Начало » Python для новичков » Excel, ввод данных
1
Meiram
Как добавить данные по деталям в уже существующие Excel документы?
Каждый документ это тип машин, а листы - их гос.номера. Уже создал окно, 2 комбобокса, и 3 инпута. Как сделать так, чтобы: а) можно было выбрать документ, и нужный лист в нем; б) вносить данные по клику в последнюю строчку. Помогите пожалуйста, начинающий программист. Вот код:
 import tkinter as Tk
import xlsxwriter 
import  openpyxl, xlrd, xlwt
from tkinter import *
from tkinter import messagebox as mb
from tkinter import ttk
#Excel
root = Tk()
root.title("Добавление детали")
root.geometry("250x350")
#текстовые поля
label1 = Label(root, text = "тип тс", bg = "green", fg = "white")
label2 = Label(root, text = "гос.номер", bg = "green", fg = "white")
label3 = Label(root, text = "наименование детали", bg = "red", fg = "white")
label4 = Label(root, text = "цена", bg = "red", fg = "white")
label5 = Label(root, text = "количество", bg = "red", fg = "white")
label1.pack( anchor=NW)
combo1 = ttk.Combobox(
                            values=[
                                    ])
combo1.pack(anchor=NW)
label2.pack(  anchor=NW)
combo2 = ttk.Combobox(
                            values=[
                                    ])
combo2.pack(anchor=NW)
label3.pack(anchor=SW)
input3 = Entry(root, width = 20, bd = 3)
input3.pack( anchor=SW)
label4.pack( anchor=SW)
input4 = Entry(root, width = 20, bd = 3)
input4.pack( anchor=SW)
label5.pack( anchor=SW)
input5 = Entry(root, width = 20, bd = 3)
input5.pack( anchor=SW)
btn = Button(text="Внести")
btn.pack(anchor=SW)
root.mainloop()
Rafik
Заключи свой код в теги, чтобы не гадать что в комбобоксах. Для правильного оформления: рядом со смайликом над окошком, где пишешь сообщение, есть значок в виде листка. Наведи на него курсор и выбери python. Выдаст теги в твоё сообщение. В эти теги вставь свой код.
Как работать с листами, активировать нужный и вставка данных: почитай доки на библиотеки openpyxl, xlrd, xlwt. Если не ошибаюсь, то пара xlrd, xlwt предназначена для работы с xls файлами старого формата excel97. Если знаком с VBA для Excel, то особой сложности разобраться с библиотеками не будет. Мне кажется, что в самом Excel смастерить макрос с пользовательским диалогом будет проще, чем делать через питон.
К кнопке “Внести” сделай привязку функции, которая будет вносить данные. Например, btn = Button(text=“Внести”, command=vnesti). Обрати внимание, в параметр command пишется имя функции без скобок.
AD0DE412
.
py.user.next
Rafik
Если знаком с VBA для Excel, то особой сложности разобраться с библиотеками не будет. Мне кажется, что в самом Excel смастерить макрос с пользовательским диалогом будет проще, чем делать через питон.
Это если ты его формируешь на компьютере, где он будет человеком открываться. Если же ты его переделываешь на сервере скриптами, то надо именно скриптами в него залазить со стороны. И там, естественно, нет Excel. К тому же ещё может понадобиться обрабатывать тысячи файлов в день таким образом. Тут тоже руками не пооткрываешь их, нужен скрипт.
Rafik
Насчёт сервака и ещё, в догонку, линя как-то не подумал. Там точно нет excel. А либре офис не полностью поддерживает макросы на VBA. Насчёт открывать ручками много файлов могу поспорить. Никто не мешает сделать макрос в отдельной книге, которая будет рулить всем процессом точно также, как это делал бы скрипт на питоне. Здесь есть один минус: будет работать только на тех машинах, где есть excel.
py.user.next
Rafik
Никто не мешает сделать макрос в отдельной книге, которая будет рулить всем процессом точно также, как это делал бы скрипт на питоне.
И как ты обработаешь папку с 1000 xls-файлов? Вот она пришла к тебе, вот ты её обработал, вот ты её отправил дальше. Всё это в течение дня нужно сделать, а на следующий день то же самое повторяется.
xam1816
вот информация на эту тему Your text to link here…
xam1816
попробовал создал файл Exсel, и в поле количество вводил цифру,она сохранялась в этом же файле

 import win32com.client
import tkinter as Tk
from tkinter import *
from tkinter import messagebox as mb
from tkinter import ttk
#Excel
root = Tk()
root.title("Добавление детали")
root.geometry("250x350")
#текстовые поля
label1 = Label(root, text = "тип тс", bg = "green", fg = "white")
label2 = Label(root, text = "гос.номер", bg = "green", fg = "white")
label3 = Label(root, text = "наименование детали", bg = "red", fg = "white")
label4 = Label(root, text = "цена", bg = "red", fg = "white")
label5 = Label(root, text = "количество", bg = "red", fg = "white")
label1.pack( anchor=NW)
combo1 = ttk.Combobox(
                            values=[
                                    ])
combo1.pack(anchor=NW)
label2.pack(  anchor=NW)
combo2 = ttk.Combobox(
                            values=[
                                    ])
combo2.pack(anchor=NW)
label3.pack(anchor=SW)
input3 = Entry(root, width = 20, bd = 3)
input3.pack( anchor=SW)
label4.pack( anchor=SW)
input4 = Entry(root, width = 20, bd = 3)
input4.pack( anchor=SW)
label5.pack( anchor=SW)
input5 = Entry(root, width = 20, bd = 3)
input5.pack( anchor=SW)
Excel = win32com.client.Dispatch("Excel.Application")
wb = Excel.Workbooks.Open(u'C:\\Users\\Мих Мих\\Documents\\OpenOffice\\test.ods')
sheet = wb.ActiveSheet
val = sheet.Cells(1,1).value
def ins():
	sheet.Cells(1, 1).value = input5.get()
	wb.Save()
def click():
	ins()
btn = Button(text="Внести",command = click)
btn.pack(anchor=SW)
root.mainloop()

Rafik
py.user.next
И как ты обработаешь папку с 1000 xls-файлов?
Делается это точно также, как ты собираешься делать через питон. VBA excel умеет читать содержимое папки, открывать свои файлы, писать, а также отображать информацию о файле и из файла в userform, в нём же (в userform) можно делать всякие label, entry, combobox и прочие “виджеты”.
Открываешь книгу, содержащую макрос, запускаешь его кнопкой на листе или ставишь в автозапуск при открытии файла.. Это эквивалетно запуску твоего макроса на питон.
py.user.next
Rafik
Открываешь книгу, содержащую макрос, запускаешь его кнопкой на листе или ставишь в автозапуск при открытии файла.
На питоне я ничего не открываю. Я просто включаю компьютер и больше ничего не делаю. И когда на компьютер приходят файлы, сам собой запускается скрипт на питоне и преобразует их. Дальше эти готовые файлы уходят по сети куда-то, а я за это время ни разу к компьютеру не подошёл. То есть ты секретарше можешь сказать просто “включи компьютер с утра и выключи компьютер вечером” - и всё будет делаться само. При этом её не надо учить и ещё человеческий фактор добавлять, когда она может ошибиться и нажать не на ту кнопку не в то время. И при этом я могу этот скрипт на питоне прикрутить к другим скриптам на питоне ещё.
Попробуй просто из макроса Excel выполнить какой-нибудь скрипт на питоне.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB