Как вставить специальные в Excel с Python - PullRequest
1 голос
/ 16 февраля 2012

Итак, я пытаюсь скопировать много данных из одной рабочей книги в другую. Дело в том, что данные в исходной книге имеют странное форматирование, поэтому я хочу просто получить значения. Код, который у меня есть, таков:

excel=win32com.client.Dispatch("Excel.Application");
excel.Visible = 1;
source = excel.Workbooks.Open(Cali.xlsm');
copy = excel.Workbooks.Open(temp.xlsx');
sdata = source.ActiveSheet;cdata = copy.ActiveSheet;
data=sdata.Range("89:89")
sdata.Range("89:89",data.End(4)).Copy()

теперь я могу использовать

cdata.Paste()

но он также вставляет форматирование

Я нашел

cdata.PasteSpecial()

но он также вставляет форматирование.

Любой, кто знает, как использовать PasteSpecial (), чтобы он копировал только значения, или кто-то знает лучший способ, я был бы очень признателен.

1 Ответ

2 голосов
/ 17 февраля 2012

Можно попробовать следующее, что копирует значения из ячеек A1: A3 из одной рабочей книги в другую.

from win32com.client import Dispatch
wkbk1 = "...\workbook1.xlsx"
wkbk2 = "...\workbook2.xlsx"
excel = Dispatch("Excel.Application")
excel.Visible = 1
source = excel.Workbooks.Open(wkbk1)
excel.Range("A1:A3").Select()
excel.Selection.Copy()
copy = excel.Workbooks.Open(wkbk2)
excel.Range("A1:A3").Select()
excel.Selection.PasteSpecial(Paste=-4163)

wkbk1 и wkbk2 - пути к файлам для двух рабочих книг.

...