Скопируйте лист Excel из одной рабочей книги в другую с помощью twapi - PullRequest
0 голосов
/ 23 ноября 2018

Я пытаюсь объединить несколько файлов Excel из одной папки в один файл, скопировать все листы из всех файлов в один с кодом ниже, но не повезло.Может кто-нибудь помочь здесь, пожалуйста ....

set file1 {D:\Temp\CombineExcel\Work\1240676493.xlsm}
set file2 {D:\Temp\CombineExcel\Work\1735749199.xlsm}

set xl [ ::twapi::comobj Excel.Application ];
set wb [$xl Workbooks];
set wb1 [$wb Open $file1];
set wb2 [$wb Open $file2];
set f1w1s1 [$str_fil1 WorkSheets]
set f2w2s2 [$str_fil2 WorkSheets]

1 Ответ

0 голосов
/ 25 ноября 2018

Если вы хотите скопировать лист 1 файла 2 в файл 1 , вы можете сделать это следующим образом:

# Open COm Excel
set excel [twapi::comobj Excel.Application]
$excel DisplayAlerts [expr 0]
set workbooks [$excel Workbooks]

set wb2 [$workbooks Open $file2] ; # Open file2
set wb1 [$workbooks Open $file1] ; # Open file1

# Second file
set ws2 [$wb2 Worksheets]
set worksheetId [$ws2 Item [expr 1]] ; # First sheet of file2
$worksheetId Activate
set range [$worksheetId Cells] ; # select all...
$range Copy

# First file
set ws1 [$wb1 Worksheets]
set lastWsId [$ws1 Item [$ws1 Count]]
set worksheetId [$ws1 -callnamedargs Add After $lastWsId]
$worksheetId Activate

$worksheetId Paste ; # Paste the result in file1 after the last sheet

$wb1 Save ; # Save file1
$excel Quit

# Destroy all objects...
foreach obj [twapi::comobj_instances] {
    $obj -destroy
}

Если вы хотите скопировать конкретный лист, вы можете работать с именем [$worksheetId Name]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...