Add(Button,11796961,238,147)
{
Left=5
Top=10
Width=65
Caption="Open Excel"
link(onClick,420540:doExecute,[])
}
Add(Hub,9982022,336,147)
{
link(onEvent1,10946710:doClear,[(440,153)(440,174)])
link(onEvent2,10692435:doOpen,[(361,160)(361,237)])
}
Add(ODialog,420540,287,147)
{
Filter="Excel(.xls,.xlsx)|*.xls;*.xlsx"
link(onExecute,9982022:doEvent1,[])
}
Add(ComboBox,10946710,448,161)
{
Left=120
Top=10
Width=140
Height=21
Text="Выбрать лист"
DataType=1
Point(doSelect)
link(onClick,10692435:doSheet,[(487,174)(487,223)(368,223)(368,258)])
}
Add(If_else,11782534,392,161)
{
Type=5
Op2=Integer(0)
link(onTrue,10946710:doAdd,[])
link(onFalse,10946710:doSelect,[(436,174)(436,195)])
}
Add(Label,4501845,154,147)
{
Left=75
Top=55
Caption="Row"
}
Add(Label,613563,196,147)
{
Left=135
Top=55
Width=39
Height=17
Caption="Column"
}
Add(Button,8636081,140,238)
{
Left=10
Top=80
Caption="Write"
link(onClick,1368601:doString,[])
}
Add(Edit,663925,154,189)
{
Left=75
Top=80
Text="2"
DataType=2
}
Add(Edit,10420173,196,189)
{
Left=130
Top=80
Text="1"
DataType=2
}
Add(FormatStr,1368601,189,238)
{
DataCount=3
Mask="%1;%2;%3"
link(onFString,10692435:doWrite,[])
link(Str1,663925:Text,[(195,233)(160,233)])
link(Str2,10420173:Text,[])
link(Str3,1087963:Text,[(209,230)(244,230)])
}
Add(VBJScript,10692435,392,231)
{
@Hint=#16:Query SQL Server|
WorkPoints=#6:doOpen|7:doWrite|6:doRead|7:doSheet|7:doMacro|7:doClose|
EventPoints=#6:onShet|7:onMacro|7:onCells|6:onOpen|
Script=#9:Dim strIn|10:Dim strOut|10:Dim NumRow|10:Dim NumCol|5:Dim i|5:Dim j|12:Dim objExcel|0:|22:Sub doWork(Data,Index)|18: Select Case Index|103: Case "doOpen" 'На вход подаётся строка, содержащая полный путь к файлу|52: Set objExcel = CreateObject("Excel.Application")|52: Set objWorkbook = objExcel.Workbooks.Open (Data)|82: For i=1 To objWorkbook.Sheets.Count 'Листы начинаются не с "0", а с "1"|67: sys.onShet objWorkbook.Sheets(i).Name 'Выводим имя наружу |9: Next|74: 'j=objWorkbook.macro.Count 'Узнаём количество макросов|88: ' For i=1 To j 'Нумерация начинаются не с "0", а с "1" |79: ' strIn = objWorkbook.macro(i).Name 'Узнаём имя очередного макроса |67: ' sys.onMacro strIn 'Выводим имя наружу |15: ' Next |18: sys.onShet 0 |16: sys.onOpen 1|143: Case "doRead" 'На вход подаётся строка, содержащая (разделитель -- точка с запятой): НомерСтроки;НомерКолонки;|22: strIn = CStr(Data)|28: i = InStr(1,strIn,";",0)|37: NumRow = CLng(Mid(strIn, 1, i-1))|33: NumCol = CLng(Mid(strIn,i+1))|61: strOut = objExcel.ActiveSheet.Cells(NumRow, NumCol).Value|27: sys.onCells strOut |163: Case "doWrite" 'На вход подаётся строка, содержащая (разделитель -- точка с запятой): НомерСтроки;НомерКолонки;ЗаписываемоеЗначение|22: strIn = CStr(Data)|28: i = InStr(1,strIn,";",0)|37: NumRow = CLng(Mid(strIn, 1, i-1))|30: j = InStr(i+1,strIn,";",0)|41: NumCol = CLng(Mid(strIn, i+1, j-i-1))|28: strIn = Mid(strIn, j+1)|58: objExcel.ActiveSheet.Cells(NumRow, NumCol).Value=strIn|21: sys.onCells strIn|93: Case "doSheet" 'На вход подаётся строка, содержащая имя Листа|32: objExcel.Sheets(Data).Select|44: objExcel.ActiveSheet.Cells(1, 1).Select |95: Case "doMacro" 'На вход подаётся строка, содержащая имя Макроса|63: objExcel.Application.Run (Data) |19: 'sys.onMacro 1 |17: Case "doClose"|17: objExcel.Quit|26: Set objExcel = Nothing|20: sys.onOpen 0 |11: End Select|0:|7:End Sub|
UseName=0
link(onShet,11782534:doCompare,[(431,237)(431,216)(382,216)(382,167)])
link(onOpen,4742625:doEvent,[])
}
Add(Memo,1087963,238,189)
{
Left=10
Top=115
Width=475
Height=210
ScrollBars=2
}
Add(MainForm,9161318,448,294)
{
Width=507
Height=372
Caption="In_Out_Excel"
Point(onClose)
link(onClose,604810:doCompare,[])
}
Add(LED,1408573,497,245)
{
Left=85
Top=5
}
Add(IndexToChanel,4742625,448,252)
{
link(onEvent1,1408573:doOff,[])
link(onEvent2,1408573:doOn,[])
}
Add(If_else,604810,497,315)
{
Op2=Integer(1)
link(onTrue,10692435:doClose,[(541,321)(541,290)(383,290)(383,272)])
link(Op1,1408573:Value,[])
}
Этот топик читают: Гость
Ответов: 537
Рейтинг: 14
|
|||
Как автоматически сохранять excel? Сейчас при закрытии программы появляется окошко для сохранения. Нужно чтобы сохранялся excel файл сам без окошка, например по нажатию на кнопку все записи сами сохраняются, но документ не закрывается и с ним можно работать дальше. Так можно сделать?
|
|||
карма: 4 |
|
Ответов: 8921
Рейтинг: 823
|
|||
Sersey, или добавить в скрипт точку doSave и обозначить процедуру:
или в самой книге Excel (можно распространить на все книги) написать макрос на сохранение и вызывать его по имени (см архив) http://forum.hiasm.com/getfile/38557 |
|||
карма: 19 |
|
Ответов: 537
Рейтинг: 14
|
|||
Не работает, появляется ошибка
|
|||
карма: 4 |
|
Ответов: 8921
Рейтинг: 823
|
|||
Sersey, Excel 2003 г, SP3
РаботаетБезОшибки.jpg |
|||
карма: 19 |
|
Ответов: 537
Рейтинг: 14
|
|||
Когда нажимаю кнопу Save
Такая ошибка Редактировалось 2 раз(а), последний 2018-12-23 22:57:22 |
|||
карма: 4 |
|
Ответов: 8921
Рейтинг: 823
|
|||
Sersey, может с администрированием не порядок? Я ведь вашу последнюю схему запускал, работает
|
|||
карма: 19 |
|
Ответов: 537
Рейтинг: 14
|
|||
У меня установлен Microsoft Office 2013 SP1 Standard все отлично работает, но при закрытии программы с вашим скриптом процесс excel.exe не всегда закрывается, чаще остается и окошко сохранения не всегда появляется при закрытии программы, потом нажимаю на файл excel и он спрашивает о сохранении.
|
|||
карма: 4 |
|
Ответов: 8921
Рейтинг: 823
|
|||
Sersey, версии от 2013 г. у меня нет Остаётся только по шинам постучать и фары тряпочкой протереть, а если не поможет, то коллегу andrestudio звать, он более нас разбирается в VB
|
|||
карма: 19 |
|
Ответов: 537
Рейтинг: 14
|
|||
Так причем тут офис http://nnm-club.me/forum/viewtopic.php?t=1200759 andrestudio посмотрите скрипт
Редактировалось 1 раз(а), последний 2018-12-24 18:09:27 |
|||
карма: 4 |
|
Ответов: 5227
Рейтинг: 587
|
|||
Sersey, на ресурс меня не пускает. У меня vbjscript перепилен изрядно (и ещё ждёт своей доработки) Обычно большинство вопросов уже решаемо на сером форуме http://forum.script-coding.com
|
|||
карма: 4 |
|
Ответов: 537
Рейтинг: 14
|
|||
Мне нужно иметь возможность сохранять длинный текст с переводом строк в файл .xslx, с помощью вашего скрипта весь текст вставляется в ячейку файла excel, но есть проблемы с сохранением. Знаете другой рабочий способ вставить длинный текст в excel файл, а не только 255 символов ?
|
|||
карма: 4 |
|
Ответов: 5227
Рейтинг: 587
|
|||
Sersey, навряд ли это мой скрипт. Как помню вроде есть метод SaveAs там с любым расширен им который поддерживает экспорт, в современных и в PDF может. В любом случае мой vbjscript избавлен от анахронизма где методы нужно выстраивать с помощью Select Case всё как в обычном IC только
Sub doName(dt,idx) .... End Sub По сему даже твой скрипт запустить не смогу. |
|||
карма: 4 |
|
Ответов: 537
Рейтинг: 14
|
|||
Тут вот в чем дело. Если например открыть в хайясме файл .xlsx с помощью sqlite3.dll то очень быстро открывается, но опять есть "но". Делаю парсер у меня на компе все отлично открывается, а на win 10, совсем не работает пока не переустановлю программу excel, вот драйвера все есть, а не работает совсем. В общем косяки в двух случаях. Нужна хорошая система, например отдельно открыть файл в хайясме, а потом другая система сохранить с длинным текстом без обрезки в 255 символов. 255 символов это я как понял проблема файлов .xls а как с помощью sqlite3.dll сохранить в .xlsx?
Вот открытие файла и то бывает runtime error, один файл нормально открывает, а другой runtime error и прога закрывается. На этом компе win7 32, процессор современный и оператива 4 Гб
|
|||
карма: 4 |
|
Ответов: 537
Рейтинг: 14
|
|||
Вот реальный вопрос, как можно средствами хайясм загрузить файл .xlsx а потом сохранить. И еще не поддерживаемая кодировка unicode, про браузер уже молчу, сам придумал, сейчас он даже лучще, например скролл и полный текст страницы получает еще быстрее примерно четверть секунды. Сейчас многие сайты переходят на прокрутку для сайтов, вот прокрутил ниже и загрузилось, яша тот вообще сделал код, например наводишь мишкой, можешь html узнать, мышка в другом фокусе и код другой. Так вот IЁ уже не катит, загружается одна страница и берет непонятно почему 100 Мб оперативной памяти жрет и страница следующая опять добавляет эти Мб и через несколько страниц оператива заканчивается. Так я пользуюсь теперь только своим браузером, который смог приручить
|
|||
карма: 4 |
|
Ответов: 537
Рейтинг: 14
|
|||
Опять нужно сохранить файл без окошка, раньше так и не решили. Так сейчас когда закрываю Excel файл после записи, появляется окно с сохранением и пишет, что сохраняет как копия документа, я так понял, тот что открыт занят процессом, ведь я документ закрываю, какого эти окна. Сделал программу, она открывает определенную вкладку в файле .xlsx, записывает данные и закрывает, нужно как то сохранить то, что записано желательно без окон с вопросами.
Вот код взятый тут на форуме, как его дописать чтобы сохранялось при закрытии документа без лишних вопросов без ошибок которые появляются как я писал выше? Тесты делал на системе win10 64bit, установлен Excel 2016
Microsoft Word 2007, программа также должна сохранять сама и на win7 и win10, потому как на ноуте win7, а на стационарном ПК WIN10. Наверное это возможно, ведь на всех выше перечисленных системах скрипт записывает и сохраняет, только окошки немного разные при сохранении файла. Основное ведь работает, может поможете, так ведь ни какой автономности, нужно все вручную сохранять Редактировалось 1 раз(а), последний 2020-09-07 22:41:04 |
|||
карма: 4 |
|