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 

Скрипт для создания шаблона Excel
Goto page Previous  1, 2, 3  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
TIGROIDONIA



Joined: 19 Aug 2011
Posts: 8

Post (Separately) Posted: Wed Nov 23, 2011 06:45    Post subject: Reply with quote

Друзья, снова прошу о помощи, всвязи с усовершенствованием файла шаблона и включением в него макросов теперь мне требуется все тоже самое, но с сохранением шаблона с поддержкой макросов, те с расширением xlsm, как я понимаю процедура SaveAs должна иметь какой-то другой вид?
В настоящий момент пользуюсь этим кодом успешно, прошу подправить для использования файлов с макросами для Excel 2010
Code:
'Создает пустой xlsx-файл в текущем каталоге и открывает его
File    = InputBox("Введите имя нового файла (без расширения)", "Создание нового xlsx-файла", "Новый файл")
If File = "" Then WScript.Quit
If WScript.Arguments.Count > 0 Then Template = WScript.Arguments(0) Else Template = ""
With CreateObject("Excel.Application")
  .Workbooks.Add Template
  .Application.ActiveWorkBook.SaveAs CreateObject("WScript.Shell").CurrentDirectory & "\" & File & ".xlsx"
  .Visible = True
End With
[/quote]

Добавлено спустя 48 минут:

Эх, не выдержал и нашел решение сам, если кому надо, то добавить параметр 52
Code:

.Application.ActiveWorkBook.SaveAs CreateObject("WScript.Shell").CurrentDirectory & "\" & File & ".xlsm", 52
Back to top
View user's profile Send private message
Nick



Joined: 26 Dec 2014
Posts: 107

Post (Separately) Posted: Tue Jan 20, 2015 18:38    Post subject: Reply with quote

При попытке запуска этого скрипта получаю:
---------------------------
Строка: 7
Символ: 4
Ошибка: Метод SaveAs из класса Workbook завершен неверно
Код: 800A03EC
Источник: Microsoft Excel
---------------------------
Возможно ли еще как-то адаптировать этот скрипт, чтобы создавать документы и Word тоже. (Office XP). Сейчас приходится делать так: ПКМ на панели TC-->Новый-->документ Microsoft Word-->ввод имени и после этого запуск файла. С Excel аналогично. Достаточно неудобно.
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Tue Jan 20, 2015 19:03    Post subject: Reply with quote

Выше предлагалось удалить ", 51". Не помогло?
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
Nick



Joined: 26 Dec 2014
Posts: 107

Post (Separately) Posted: Wed Jan 21, 2015 18:31    Post subject: Reply with quote

Flasher wrote:
Выше предлагалось удалить ", 51". Не помогло?
После этого файл Excel создается только в папке, где находится сам скрипт. Параметр %P не работает. А как быть с Word?
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Wed Jan 21, 2015 20:47    Post subject: Reply with quote

Code:
' ==========================================================================
' Создать пустой doc(x)/ppt(x)/xls(x)-файл в активном каталоге и открыть его
' Условие:  путь запуска должен быть пустым
' Параметр: <расширение файла>

' Автор: Flasher ©
' ==========================================================================
Ext = WScript.Arguments(0) : Extx = Left(Ext, 3)
Title = "Создание нового " & Ext & "-файла"
Select Case Extx
  Case "doc" Pr = "Word" : Case "xls" Pr = "Excel" : Case "ppt" Pr = "PowerPoint"
  Case Else MsgBox Ext & " - неверное расширение!", 48, "   " & Title : WScript.Quit
End Select : FN = Trim(InputBox(String(5, vbCr) & "Введите базовое имя файла:",_
Space(23) & Title, "Новый файл")) : If FN = "" Then WScript.Quit
F = CreateObject("WScript.Shell").CurrentDirectory & "\" & FN : FN = F
While CreateObject("Scripting.FileSystemObject").FileExists(_
FN & "." & Ext) i = i + 1 : FN = F & " (" & i & ")" : Wend
With CreateObject(Pr & ".Application")
  Select Case Extx
    Case "doc" Set Add = .Documents.Add : Case "ppt" Set Add = .Presentations.Add
  Case Else .Workbooks.Add : Set Add = .Application.ActiveWorkBook
  End Select : Add.SaveAs(FN & "." & Ext) : .Visible = True
End With

_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
Nick



Joined: 26 Dec 2014
Posts: 107

Post (Separately) Posted: Thu Jan 22, 2015 18:19    Post subject: Reply with quote

Flasher
Ok. Работает, но только создаваемые файлы отличаются. Например, файл doc, созданный через TC=10,5 KB, через скрипт=19,5 KB. Файлы xls создаются с одинаковым размером, но разным содержимым.
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Thu Jan 22, 2015 18:48    Post subject: Reply with quote

Nick
Ничем не могу помочь. ТС ничего подобного не умеет. Использование системного контекстного меню к этому не относится.
У меня, как я ранее писал, файлы docx системной создаются и открываются пустыми (0 байт). xlsx скриптом - 7760 байт, через меню десктопа - 6339 байт.
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
Skif_off



Joined: 28 Nov 2012
Posts: 1232

Post (Separately) Posted: Thu Jan 22, 2015 19:02    Post subject: Reply with quote

Почему просто не сделать шаблоны и не копировать в нужное место с нужным именем? MS Office и LibreOffice хранят свои шаблоны в ShellNew, кажется.
Просто положить рядом со скритом и не париться, что стоит и какой версии.
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Thu Jan 22, 2015 19:36    Post subject: Reply with quote

Skif_off
Шаблоны? Речь же про пустышки. Их, естественно, как копии тоже можно задействовать, так будет, конечно, проще.
Code:
TOTALCMD#BAR#DATA
cmd /c copy "%COMMANDER_PATH%\Scripts\Шаблоны\Template.doc" NewFile.doc && NewFile.doc

imageres.dll,188
Создать и открыть doc-файл

1

Но как ранее обсуждалось, поведение для 0-байтовых Word-файлов не во всех случаях одинаковое. Поэтому я бы доверился ActiveX.
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
Skif_off



Joined: 28 Nov 2012
Posts: 1232

Post (Separately) Posted: Thu Jan 22, 2015 23:55    Post subject: Reply with quote

Flasher
Смущают различия, да и Pr & ".Application" есть не везде.
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Fri Jan 23, 2015 02:36    Post subject: Reply with quote

Skif_off wrote:
Смущают различия
Это мелкомягкие виноваты, а не я.
Skif_off wrote:
да и Pr & ".Application" есть не везде
Там, где стоят программы MS Office, - везде.
Я, конечно, могу задействовать объектную модель LibreOffice, если та отсутствует, но оно кому надо?
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Sat Jan 24, 2015 10:52    Post subject: Reply with quote

Люди, а между прочим, размеры xlsx-файлов, созданных через десктоп>ПКМ>Создать и TC>заголовок панели>ПКМ>Новый тоже отличаются.
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
Nick



Joined: 26 Dec 2014
Posts: 107

Post (Separately) Posted: Tue Jan 27, 2015 14:10    Post subject: Reply with quote

Flasher wrote:
могу задействовать объектную модель LibreOffice, если та отсутствует, но оно кому надо?
Такой скрипт для LibreOffice тоже не помешал бы.
Flasher wrote:
размеры xlsx-файлов, созданных через десктоп>ПКМ>Создать и TC>заголовок панели>ПКМ>Новый тоже отличаются.
В проводнике и в TC меню вообще часто отличается. Да и даты TC делает неправильные, в отличие от проводника, который создает файл по текущей дате.
Back to top
View user's profile Send private message
Skif_off



Joined: 28 Nov 2012
Posts: 1232

Post (Separately) Posted: Tue Jan 27, 2015 18:00    Post subject: Reply with quote

Quote:
Такой скрипт для LibreOffice тоже не помешал бы

А есть ещё Gnumeric, KCells (KOffice), SoftMaker Office, WPS Office (Kingsoft Office)...
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Tue Jan 27, 2015 23:19    Post subject: Reply with quote

ИздеваетеС?
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander All times are GMT + 4 Hours
Goto page Previous  1, 2, 3  Next
Page 2 of 3

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group