Редактировать : если требуется скопировать один столбец или строку, а не сетку. in_
ниже можно использовать с replace для создания строки, разделенной запятыми.
# First copy a column from a spread sheet to the clipboard.
# in_() will return the values separated by newlines '\n'.
# replace these by comma
in_()
# Out[21]: '3\n13\n23\n33\n43\n53\n63\n73\n83\n93\n103\n113\n123\n'
in_().replace('\n', ',')
# Out: '3,13,23,33,43,53,63,73,83,93,103,113,123,'
# If copying a row the copied separator is tab '\t'
# Copy a row in a spreadsheet
in_()
# Out: '60\t61\t62\t63\t64\t65\t66\t67\t68\n'
in_().replace('\t', ',')[:-1] # [-1] removes the newline character.
# Out[25]: '60,61,62,63,64,65,66,67,6'
Я написал in_()
и from_grid()
для копирования данных из электронных таблиц в переменные, которые я хотел использовать в моем python Терминал. Они позволяют пользователю копировать область в электронной таблице в буфер обмена. in_()
вернет клип в виде строки. from_grid()
вернет это преобразованное в список списков строк.
import tkinter as tk
import numpy as np
def in_():
"""
Returns the contents of the clipboard as text.
Usage: txt = in_()
"""
clip=tk.Tk()
clip.withdraw()
temp=clip.selection_get(selection="CLIPBOARD")
clip.destroy()
return temp
def from_grid(delimit_row="\n", delimit_cell="\t"):
"""
Returns a list of lists copied from the clipboard.
Usage: grid=from_grid(delimit_row="\t", delimit_cell="\n")
grid is a list of lists
[ [ r00, r01, r02, ... ],
[ r10, r11, r12, ... ],
....
]
by defaut: the row delimiter is a newline, "\n"
the cell delimiter is a tab character, "\t"
This will paste a copied region of a spreadsheet into a list of lists.
"""
txt=in_()
rows=txt.split(delimit_row)
ret=[]
for row in rows:
temp=row.split(delimit_cell)
ret.append(temp)
return ret[:-1] # A final empty last row is appended.
# This loses it.
import numpy as np
def to_floats( data ):
result= []
for row in data:
temp = []
for item in row:
temp.append(float(item))
result.append(temp)
return np.array(result)
arr = to_floats( from_grid() )
Это не делает в точности то, что вы просили, но дает способ получить данные электронной таблицы в python, где они могут быть обработаны.
Запуск этого в Консоль python позволит пользователю распечатать результаты, которые затем можно будет скопировать в сценарий.
Могут быть более точные способы сделать это. Вокруг есть несколько библиотек, Pyperclip - одна, но я никогда не использовал ее.