1

だから私はあるwoorkbookから別のwoorkbookにたくさんのデータをコピーしようとしています。重要なのは、ソースワークブックのデータのフォーマットがおかしいので、値だけを取得したいということです。私がこれまでに持っているコードはこれです。

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()を使用して値だけをコピーする方法を知っている人、または誰かが私が非常に感謝するより良い方法を知っている人は誰でも。

4

1 に答える 1

3

セルA1:A3の値を1つのブックから別のブックにコピーする次の方法を試すことができます。

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は、2つのワークブックへのファイルパスです。

于 2012-02-16T20:59:52.283 に答える