Loopback
|
Posted: Mon Oct 26, 2009 10:51 Post subject: |
|
|
Мне по работе приходится довольно много работать с экселем похожим образом. Совсем не открывая не получится, все равно придется работать через объект 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]
|
|
|