Что нового

Как сделать Save As файла xlsx

marker_mc

Новичок
Сообщения
9
Репутация
0
Написал скрипт, вконце исполнения которого финальным результатом является отрытый файл .xlsx (имя выгружаемого файла каждый раз новое в зависимости от даты) только что выгруженый с базы данных.
Теперь мне его нужно "соханить как"
с опреденным именем (имя не меняется, например NAME)
и по конкретно указаному пути
скажем например "\\рабочий стол\новая папка"

Помогите пожалуйста в решени задачи.
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
marker_mc,
В справке _ExcelBookSaveAs().
 
Автор
M

marker_mc

Новичок
Сообщения
9
Репутация
0
Я справку перед тем как постить тему смотрел, сам что то не разобрался, попросил наглядный пример на указанной мной ситуации.
Кому не сложно - будьте добры.

заранее спасибо.
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
marker_mc [?]
Написал скрипт, вконце исполнения которого финальным результатом является отрытый файл .xlsx (имя выгружаемого файла каждый раз новое в зависимости от даты) только что выгруженый с базы данных.
Чем этот файл открыт?
 
Автор
M

marker_mc

Новичок
Сообщения
9
Репутация
0
Excel 2010


Добавлено:
Сообщение автоматически объединено:

Написал так, но неработает:

Код:
Opt("WinTitleMatchMode", 1)
WinWaiT($sTitle,"Книга1")
#include <Excel.au3>
_ExcelBookSaveAs($oExcel, "C:\Documents and Settings\user501\Рабочий стол\Ежедневная отгрузка\Остатки.xlsx", "xlsx", 0, 1)


предполагаю что не правильно дожидаюсь открытия документа.


Добавлено:
Сообщение автоматически объединено:

Порылся, подумал и понял что не так что то с этим
$oExcel

я ничего этому параметру как указано в справке не назначал
Код:
Local $sFilePath1 = @ScriptDir & "\Test.xls" ;This file should already exist
Local $oExcel = _ExcelBookOpen($sFilePath1)


мне нужно сохранить активную в данный моммент книгу. Тоесть я дожидаюсь отрытия книги
Код:
Opt("WinTitleMatchMode", 1)
WinWaiT("Книга1", @SW_MAXIMIZE)


а дальше нужно её сохранить по указаному пути:
Код:
#include <Excel.au3>
_ExcelBookSaveAs($oExcel, "C:\Documents and Settings\user501\Рабочий стол\Ежедневная отгрузка\Остатки.xlsx", "xlsx", 0, 1)


где допускаю ошибку? что нужно указать вместо $oExcel?
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Предупреждение За нарушение правил форума (пункт В.11):
Любые отрывки AutoIt кода необходимо заключать в тег [autoit]
autoit.gif
(подробнее), а обычный код соответственно в тег [code]
code.gif
(подробнее). Также большие выдержки текста помещайте под тег [spoiler]
spoiler.gif
(подробнее), там где это поддерживается естественно. Как в случае с названием темы, также короткое и эргономичное сообщение привлекает больше внимания, и шансы на получение конкретного ответа увеличиваются.


С уважением, ваш Модератор.






Добавлено:
Сообщение автоматически объединено:

marker_mc,
Сформулирую вопрос по другому. В результате каких конкретно действий Вашего скрипта (кусок кода покажите) появляется открытая книга Excel ?
 
Автор
M

marker_mc

Новичок
Сообщения
9
Репутация
0
Код:
Opt("WinTitleMatchMode", 1)
WinWaiT($sTitle,"Оборотная ведомость")
sleep(3000)
Send("{ALTDOWN}{F5}{ALTUP}")
sleep(3000)
MouseClick("left", 710, 500, 1)
Opt("WinTitleMatchMode", 1)
WinWaiT("Книга1", @SW_MAXIMIZE)


после
Код:
MouseClick("left", 710, 500, 1)
и происходит открытие экселевского документа с именем Книга1
потом как я уже писал выше мне его нужно сохранить
с именем ОСТАТКИ
сюда
"C:\Documents and Settings\user501\Рабочий стол\Ежедневная отгрузка\Остатки.xlsx"


Добавлено:
Сообщение автоматически объединено:

кстати вот увидел один моммент, может причина где то в этом кроется?
смотрите, когда указываю вот эти строчки

Код:
#include <Excel.au3>
_ExcelBookSaveAs($oExcel, "C:\Documents and Settings\user501\Рабочий стол\Ежедневная отгрузка\Остатки.xlsx", "xlsx", 0, 1)


то что тут на форуме, что в примерах _ExcelBookSaveAs выделяеться голубым цветом, а у меня в коде оно почему то черное (как обычный текст)
Кстати файл Excel.au3 откорректировал добавив всё что указано в справке для возможности сохранения xlsx
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
marker_mc
Попробуйте так, у меня на 2003 работает.
Код:
#include <Excel.au3>

$sExt = 'xlsx'
$sFileName = @ScriptDir & '\' & @MDAY & '_' & @MON & '_' & StringLeft(@YEAR, 2)

;...
MouseClick("left", 710, 500, 1);ИМХО, Вы кликаете по кнопке, для этого есть ControlClick()
$hExcel = WinWait('[Class:XLMAIN]', '', 10)
If $hExcel Then
	$sTitle = WinGetTitle($hExcel)
Else
	MsgBox(16, 'Error', 'WinWait')
	Exit
EndIf
$oExcel = _ExcelBookAttach($sTitle, 'Title')
If @error Then
	MsgBox(16, 'Error', '_ExcelBookAttach')
	Exit
EndIf
If $oExcel.Application.Version <= 11 Then $sExt = 'xls'
$sFilePathOld = $oExcel.FullName
ConsoleWrite($sFilePathOld & @LF)
_ExcelBookClose($oExcel)
;....или так
;$oExcel = _ExcelBookOpen($sFilePathOld, 0)
;_ExcelBookSaveAs($oExcel, $sFileName, $sExt, 0, 1)
;ConsoleWrite(@error & @LF)
;_ExcelBookClose($oExcel)
;...или так
FileCopy($sFilePathOld, $sFileName & '.' & $sExt, 1)
 
Автор
M

marker_mc

Новичок
Сообщения
9
Репутация
0
Всё равно что то не выходит у меня. То ошибку выдайт, то ничего не делает просто открывает эксель и на этом всё.
 
Верх