Что нового

сохранение изменений в xls файле

TelegaXP

Новичок
Сообщения
4
Репутация
0
Почитал темы по работе с файлами .xls вроде бы всё понятно, но как часто бывает, на практике дело не пошло. Требуется элементарное, открыть файл .xls внести данные в ячейку сохранить изменения и закрыть файл. Написал вот такой код:

Код:
$objExcel = ObjCreate("Excel.Application")
$objExcel.Workbooks.Open(@ScriptDir & "\Test2.xls")
$objExcel.Visible = 1
sleep(1000)
$objExcel.ActiveWorkbook.Sheets("Лист1").Cells(1, 1).Value = "Test"
$objExcel.ActiveWorkBook.Saved = True
$objExcel.ActiveWorkBook.Close

Файл открывается, изменения вносятся в ячейку, файл закрывается, но при повторном открытии этого же файла информация в ячейке в которую необходимо было внести данные старая, т.е. изменения не сохранились.
Что не так в коде??
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
TelegaXP,
Правила.

Код:
#include <Excel.au3>

$sFile = @ScriptDir & '\1.xls'
$oExcel = _ExcelBookOpen($sFile);, 0)
_ExcelSheetActivate($oExcel, 2)
For $i = 1 To 10
	_ExcelWriteCell($oExcel, $i & ' Test', $i, $i)
Next
_ExcelBookClose($oExcel)
 
Автор
T

TelegaXP

Новичок
Сообщения
4
Репутация
0
madmasles спасибо, этот вариант отлично работает.
И всё же интересно почему ничего не получилось с использованием - $objExcel.ActiveWorkBook.Saved = True, где я натупил?
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
TelegaXP,
Посмотрите в Excel.au3 эти функции, если Вам интересно. Только зачем изобретать велосипед, ИМХО?
 

Dreadfulangel

Знающий
Сообщения
19
Репутация
11
Вместо
Код:
$objExcel.ActiveWorkBook.Saved = True

нужно использовать
Код:
$objExcel.ActiveWorkBook.Save
 
Верх