Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Single Post  Topic: Копирование столбцов из .xls и сохранение в файл 
Author Message
Loopback



PostPosted: Mon Oct 26, 2009 10:51    Post subject: Reply with quote

Мне по работе приходится довольно много работать с экселем похожим образом. Совсем не открывая не получится, все равно придется работать через объект Excel. Но можно делать это в скрытом виде.

Вот пример на Autoit, c использованием библиотеки ExcelCOM. Библиотеку можно скачать здесь. Ее нужно положить в один каталог со скриптом.

Сам скрипт:

Code:

#include <Excel.au3>

$sFile = @ScriptDir & "\filename.xls"
; Откроем книгу
$oInFile = _ExcelBookOpen($sFile, 0, True)
; Прочитаеи 4 колонки, начиная  со второй (B), строки читаем все
$aData = _ExcelReadSheetToArray($oInFile, 1, 2, 0, 4)
; Закроем книгу
_ExcelBookClose($oInFile, 0)

; Откроем выходной файл для записи - с очисткой
$hFile = FileOpen("output.txt", 2)

; Запишем данные
For $i=1 To $aData[0][0]
    FileWriteLine($hFile, StringFormat("%s\t%s\t%s\t%s", $aData[$i][1], $aData[$i][2], $aData[$i][3], $aData[$i][4]))
Next

FileClose($hFile)

Формат вывода, т.к. не был обговорен, сделал с разделением табуляцией. Но разумеется, можно как угодно. Файл задан в переменной $sFile, если нужно получать параметр из командной строки, то нужно заменить эту строку на пару таких:

Code:

If $CmdLine[0] = 0 Then Exit
$sFile = $CmdLine[1]
View user's profile Send private message


Powered by phpBB © 2001, 2005 phpBB Group