Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] переименования файлов (http://forum.oszone.net/showthread.php?t=331728)

mcintosh55 07-12-2017 10:24 2782907

переименования файлов
 
Привет всем! помогите со скриптом, есть n-ое кол-во файлов docx и txt файл (в нем список имен) нужен скрипт которые будет брать имена с txt файла и переименовывать docx файлы согласно списка в txt файле

Iska 07-12-2017 10:40 2782910

Образец списка? Есть ли в нём кириллица?

mcintosh55 07-12-2017 11:02 2782913

В нем кириллица
Пример:
Иванова Иван Иванович
Петров Петр Петрович
Сидоров Иван Артёмович
и т.д.

Iska 07-12-2017 11:09 2782914

mcintosh55, тогда ещё вопросы — кодировка файла какая? Каким образом ограничены имена? Каким образом старое имя отделено от нового?

mcintosh55 07-12-2017 11:15 2782917

1) наверно не правильно задал вопрос, в текстовом файле список только новых имён нужно просто по порядку переименовать. Т.е. Берём первый файл заходим в txt файл берём из первой строчки ФИО и переименовываем Файл. Все имена в txt файле в столбике.
2) имена сохранены в с помощью блокнота кодировка стандартная windows но могу переделать под какую надо

Elven 07-12-2017 12:44 2782935

как соотнести файлы с именем из списка?

mcintosh55 07-12-2017 13:29 2782952

Цитата:

Цитата Elven
как соотнести файлы с именем из списка? »

есть файлы и есть список имен в txt файле в цикле берем первый файл и первое имя в txt файле и переименовываем (имена в txt файле записаны в столбик)

Iska 07-12-2017 13:50 2782963

Цитата:

Цитата mcintosh55
просто по порядку переименовать. Т.е. Берём первый файл »

И тут возникает новый вопрос — по какому порядку? Ибо, скажем, порядок по возрастанию имён в том же Проводнике и в команде dir может частично отличаться.

Впрочем, вот, на WSH:
Скрытый текст
Код:

Option Explicit

Dim strSourceFile
Dim strSourceFolder


Dim objFile
Dim objDictionary

Dim arrOldNames, arrNewNames

Dim i


If WScript.Arguments.Count = 1 Then
        With WScript.CreateObject("Scripting.FileSystemObject")
                strSourceFile = .GetAbsolutePathName(WScript.Arguments.Item(0))
                strSourceFolder = .GetParentFolderName(strSourceFile)
               
                If .FileExists(strSourceFile) Then
                        Set objDictionary = WScript.CreateObject("Scripting.Dictionary")
                       
                        For Each objFile In .GetFolder(strSourceFolder).Files
                                If StrComp(.GetExtensionName(objFile.Name), "docx", vbTextCompare) = 0 Then
                                        objDictionary.Add objFile.Name, ""
                                End If
                        Next
                       
                        arrOldNames = objDictionary.Keys
                       
                        With .OpenTextFile(strSourceFile)
                                arrNewNames = Split(.ReadAll(), vbCrLf)
                                .Close
                        End With
                       
                        For i = LBound(arrOldNames) To UBound(arrOldNames)
                                If i <= UBound(arrNewNames) Then
                                        If Len(Trim(arrNewNames(i))) > 0 Then
                                                .GetFile(.BuildPath(strSourceFolder, arrOldNames(i))).Name = Trim(arrNewNames(i))
                                        End If
                                End If
                        Next
                       
                        objDictionary.RemoveAll
                        Set objDictionary = Nothing
                Else
                        WScript.Echo "Can't find source file [" & strSourceFile & "]."
                        WScript.Quit 2
                End If
        End With
Else
        WScript.Echo "Usage: cscript.exe //nologo """ & WScript.ScriptFullName & """ <Source file>"
        WScript.Quit 1
End If

WScript.Quit 0


Путь к файлу с новыми именами указывается аргументом скрипта, файлы *.docx будут искаться в том же каталоге, где находится файл с новыми именами (хоть это и категорически неправильный подход). Никаких проверок на совпадение имён не делалось.

mcintosh55 07-12-2017 14:09 2782968

Цитата:

Цитата Iska
И тут возникает новый вопрос — по какому порядку? Ибо, скажем, порядок по возрастанию имён в том же Проводнике »

файлы иду в таком порядке:
Документ1
Документ2
Документ3
ДокументN

Elven 07-12-2017 14:48 2782982

я может неправильно понял, но вроде как имеют место два файла: в одном файле имена пользователей, в другом - имена файлов, при этом каждая строка с именем пользователя в первом документе соответствует имени файла во втором документе.
т.е.

users.txt
Иван Иваныч
Иван Степаныч
Иван Кузьмич

files.txt
1.docx
2.docx
3.docx

переименование т.о. будет таким:
1.docx -> Иван Иваныч.docx
2.docx -> Иван Степаныч.docx
3.docx -> Иван Кузьмич.docx


Если я прав то на cmd получается как-то так
Код:

@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
set af=users.txt
set bf=files.txt
for /f "tokens=3" %%j in ('find /c /v "" %af%') do (
for /l %%i in (1,1,%%j) do (
set an=0
for /f "delims=" %%a in (%af%) do (
set /a an=!an!+1
if !an!==%%i (
set bn=0
for /f "delims=" %%b in (%bf%) do (
set /a bn=!bn!+1
if !bn!==%%i (
rename  "%%b" "%%a.docx"
))))))

Цитата:

Цитата mcintosh55
кодировка стандартная windows но могу переделать под какую надо »

файл с именами пользователей должен быть в 866

alpap 07-12-2017 15:10 2782991

я так понимаю список один и только имен которые надо хаотически раскидать файлам docx, так как первое имя первому файлу правильно звучит: первое по алфавиту имя в списке первому (по алфавиту, а может и нет, как по умолчанию выставлено ...?) файлу в папке.
например было:
Файл 149931
после выполнения кода:
Код:

@echo off
set "d=C:\papka"
set "exp=docx"
set "f=spisok.txt"

if "%~1" neq "" (call %* & exit /b)
call :# :#1
call :# :#2
exit /b

:#
 pushd "%d%"
  start "" cmd /c "%~f0 %*"
 popd
exit /b

:#1
 for /f "usebackq delims=" %%a in ("%f%") do call :#2 "%%a"
exit /b

:#2
 for /f "delims=" %%a in ('dir /a-d/b "*.%exp%"') do if "%%a" neq "" ren "%%a" "%~1%%~xa"
exit /b

стало:
Файл 149932
spisok.txt видно где, в кодировке 866
name.bat не важно где, в кодировке 866

или так можно, но кодировка тоже везде 866
Код:

@echo off
set "d=C:\papka"
set "exp=docx"
set "f=spisok.txt"

pushd "%d%"
 for /f "tokens=1* delims=[]" %%a in ('dir /a-d/b "*.%exp%"^|find /n /v ""') do call :rn "%%b" "%%a"
popd
pause& exit

:rn
 <"%f%" (for /f "tokens=1* delims=[]" %%a in ('find /n /v ""^|find "[%~2]"') do @ren "%~1" "%%b%~x1")
exit /b


mcintosh55 07-12-2017 16:21 2783009

Цитата:

Цитата alpap
я так понимаю список один и только имен »

После слияния word документа с excel у меня получаеться много страничный файл
Я этот многостраничный файл word обрабатываю скриптом этот скрипт мне создает много файлов word (в каждом файле по 2 странице).
Пример файлов после обработки
обращение в суд1.docx
обращение в суд2.docx
обращение в суд3.docx
обращение в суд4.docx
и т.д.

У меня есть таблица excel которые служит для слияния в документом word в этой таблице есть столбик ФИО Я этот столбик копирую в блокнот и у меня получается:
Иванов Иван Иванович
Петров Артем Николаевич
Петренко Игорь Иванович
Сидоров Антон Владимирович
и т.д.

Мы берем первую строчку Иванов Иван Иванович и переименовываем обращение в суд1.docx у нас получается Иванов Иван Иванович.docx
берем вторую строчку Петров Артем Николаевич и переименовываем обращение в суд2.docx у нас получается Петров Артем Николаевич.docx
и так далее

Iska 07-12-2017 16:50 2783021

mcintosh55, вот всё как всегда. Ну, что бы Вам стоило изложить Вашу основную проблему, а не выбранное Вами решение частной задачи, а? Надо править Ваш:
Цитата:

Цитата mcintosh55
Я этот многостраничный файл word обрабатываю скриптом этот скрипт мне создает много файлов word (в каждом файле по 2 странице). »

(а ещё лучше увязать туда и сам первоначальный процесс слияния), а не играться в подобные игры.

mcintosh55 07-12-2017 17:03 2783024

вот как только? Вы перелагаете дописать скрипт где он разбивает один большой файл на маленькие файлы дергать ФИО excel файла и сразу переименовывать файл на выходе?

Iska 07-12-2017 17:15 2783027

Цитата:

Цитата mcintosh55
Вы перелагаете дописать скрипт где он разбивает один большой файл на маленькие файлы дергать ФИО excel файла и сразу переименовывать файл на выходе? »

Я предлагаю решить задачу целиком: получение основного документа слияния, получение списка Excel, построение документа слияния, разбитие его на отдельные документы и сохранение этих документов сразу под потребными именами.

Ведь что у нас получается: мы знаем имена этих частей в момент слияния, мы даже можем узнать эти имена в момент сохранения отдельных частей (если они добавляются куда-либо в текст документа при слиянии, и мы знаем, куда именно).

mcintosh55 07-12-2017 17:22 2783031

осталось понять как это запилить ))) слияние еще понятно а вот как потом при разбивки сохранять под нужным именем вот это вопрос

Код:

Sub SplitIntoPages()
Dim docMultiple As Document
Dim docSingle As Document
Dim rngPage As Range
Dim iCurrentPage As Integer
Dim iPageCount As Integer
Dim strNewFileName As String
Application.ScreenUpdating = False 'Makes the code run faster and reduces screen _
flicker a bit.
Set docMultiple = ActiveDocument 'Work on the active document _
(the one currently containing the Selection)
Set rngPage = docMultiple.Range 'instantiate the range object
iCurrentPage = 1
'get the document's page count
iPageCount = docMultiple.Content.ComputeStatistics(wdStatisticPages)
Do Until iCurrentPage > iPageCount
If iCurrentPage = iPageCount Then
rngPage.End = ActiveDocument.Range.End 'last page (there won't be a next page)
Else
'Find the beginning of the next page
'Must use the Selection object. The Range.Goto method will not work on a page
Selection.GoTo wdGoToPage, wdGoToAbsolute, iCurrentPage + 2
'Set the end of the range to the point between the pages
rngPage.End = Selection.Start
End If
rngPage.Copy 'copy the page into the Windows clipboard
Set docSingle = Documents.Add 'create a new document
docSingle.Range.Paste 'paste the clipboard contents to the new document
'remove any manual page break to prevent a second blank
docSingle.Range.Find.Execute Findtext:="^m", ReplaceWith:=""
'build a new sequentially-numbered file name based on the original multi-paged file name and path
strNewFileName = Replace(docMultiple.FullName, ".doc", "_" & Right$("000" & iCurrentPage, 4) & ".doc")
docSingle.SaveAs strNewFileName 'save the new single-paged document
iCurrentPage = iCurrentPage + 2 'move to the next page
docSingle.Close 'close the new document
rngPage.Collapse wdCollapseEnd 'go to the next page
Loop 'go to the top of the do loop
Application.ScreenUpdating = True 'restore the screen updating
'Destroy the objects.
Set docMultiple = Nothing
Set docSingle = Nothing
Set rngPage = Nothing
End Su

мне как Я понял нужно поправить вот эту строчку
Код:

strNewFileName = Replace(docMultiple.FullName, ".doc", "_" & Right$("000" & iCurrentPage, 4) & ".doc")

Iska 07-12-2017 17:35 2783036

mcintosh55, хотите расскажу — как? Вы готовите:
  • образец основного файла слияния в документе Microsoft Word (для меня — в старом формате .doc, а не в новом .docx);
  • образец списка в Рабочей книге Microsoft Excel (для меня — в старом формате .xls, а не в новом .xlsx), помечаете в нём, скажем, цветом, что должно использоваться в качестве имён конечных файлов;
  • проверяете, правильно ли работает слияние;
  • упаковываете документ основного файла слияния и рабочую книгу со списком в архив;
  • выкладываете архив на общедоступный ресурс, поддерживающий загрузку без ожидания и рекламы, сюда помещаете ссылку.
Если затем возникнут сопутствующие вопросы — Вам их зададут.

Цитата:

Цитата mcintosh55
Я понял нужно поправить вот эту строчку »

«Эту строчку», скорее всего, уже поздно править. Можно, конечно, озадачиться этим:
Цитата:

Цитата Iska
мы даже можем узнать эти имена в момент сохранения отдельных частей (если они добавляются куда-либо в текст документа при слиянии, и мы знаем, куда именно) »

но удобнее начать раньше.

mcintosh55 07-12-2017 17:53 2783041

ссылка на архив

Iska 07-12-2017 22:01 2783072

mcintosh55, давайте попробуем проверить работоспособность подхода в его самом первом приближении.

Для начала Вам нужно удалить все ранее заполненные строки, ныне очищенные, но тем не менее значимые строки из Рабочей книги base.xls. Откройте эту Рабочую книгу, выделите какую-нибудь ячейку на первом листе Лист1, нажмите Ctrl-End. Видите, какая ячейка стала текущей? Все эти строки, пусть и видимо пустые, надо будет удалить. Выделите строки с 4 по 130 (чтоб с запасом) и удалите их. Их следует именно удалить, а не очистить их содержимое! В принципе, свойство .SuppressBlankLines должно бы было позволять игнорировать такие строки, но, похоже, оно работает несколько иначе, нежели мне предполагалось, увы.

Затем попробуйте исполнить следующий код, сохранив его в файле с расширением .wsf и заменив в нём все пути на Ваши:
Скрытый текст
Код:

<job>
        <object ProgId = "Word.Application" id = "objWord" events = "true" />
        <script language = "VBScript">
                Option Explicit
               
                Const wdFormLetters = 0
                Const wdSendToNewDocument = 0
               
                Const wdDefaultFirstRecord = 1
                Const wdDefaultLastRecord  = -16
               
                Const wdNextRecord = -2
               
                Dim objDocument
                Dim objCurrResultDocument
               
                Dim i
                Dim strDocumentName
               
               
                objWord.Visible = True
               
                Set objDocument = objWord.Documents.Open("C:\Мои проекты\0136\order.doc", , True)
               
                With objDocument.MailMerge
                        .MainDocumentType = wdFormLetters
                        .OpenDataSource _
                                "C:\Мои проекты\0136\base.xls", _
                                ,,,,,,,,,, _
                                "Provider=Microsoft.Jet.OLEDB.4.0;Mode=Read;Extended Properties=""HDR=YES;IMEX=1;Jet OLEDB:Engine Type=35;""", _
                                "SELECT * FROM `Лист1$`"
                       
                        .Destination = wdSendToNewDocument
                        .SuppressBlankLines = True
                       
                        For i = wdDefaultFirstRecord To .DataSource.RecordCount
                                .DataSource.FirstRecord = .DataSource.ActiveRecord
                                .DataSource.LastRecord = .DataSource.ActiveRecord
                               
                                Set objCurrResultDocument = Nothing
                               
                                strDocumentName = .DataSource.DataFields.Item("SNP").Value
                               
                                .Execute False
                                .DataSource.ActiveRecord = wdNextRecord
                               
                                Do
                                        WScript.Sleep 100
                                Loop Until Not objCurrResultDocument Is Nothing
                               
                                objCurrResultDocument.Close
                        Next
                End With
               
                objDocument.Close False
                WScript.DisconnectObject objWord
                objWord.Quit
               
                WScript.Quit 0
               
                Sub objWord_MailMergeAfterMerge(ByVal objResultDocument, ByVal objMainDocument)
                        objResultDocument.SaveAs "C:\Мои проекты\0136\" & strDocumentName & ".doc"
                        Set objCurrResultDocument = objResultDocument
                       
                        WScript.Echo "Mail Merge Complete: " & objResultDocument.FullName
                End Sub
        </script>
</job>


Я здесь не делал пока никаких проверок, только проверил работоспособность. У меня результатом было создание двух файлов:
Код:

Иванов Иван Иванович.doc
Петров Петр Петрович.doc


mcintosh55 07-12-2017 22:45 2783086

office 2013 /2016, скрипт ругается на 5 строчку: Методы или свойство OpenDataSource недоступны, потому что эту команду нельзя использовать в режиме чтения. И действительно word запускаться в режиме чтения

Защищенный просмотр все галки сняты

Iska 07-12-2017 23:20 2783093

Цитата:

Цитата mcintosh55
Извините за тупой вопрос но все же wsf файл запускать так же как и vbs »

Да, исполнитель тот же — wscript.exe/cscript.exe.

Цитата:

Цитата mcintosh55
office 2013 /2016, скрипт ругается на 5 строчку: Методы или свойство OpenDataSource недоступны, потому что эту команду нельзя использовать в режиме чтения. И действительно word запускаться в режиме чтения »

Замените строку:
Код:

                Set objDocument = objWord.Documents.Open("C:\Мои проекты\0136\order.doc", , True)
на:
Код:

                Set objDocument = objWord.Documents.Open("C:\Мои проекты\0136\order.doc")

mcintosh55 07-12-2017 23:56 2783098

ISKA, большое спасибо!!!

скрипт работает office 2003/2007/2013/2016
Скрытый текст
Код:

<job>
        <object ProgId = "Word.Application" id = "objWord" events = "true" />
        <script language = "VBScript">
                Option Explicit
               
                Const wdFormLetters = 0
                Const wdSendToNewDocument = 0
               
                Const wdDefaultFirstRecord = 1
                Const wdDefaultLastRecord  = -16
               
                Const wdNextRecord = -2
               
                Dim objDocument
                Dim objCurrResultDocument
               
                Dim i
                Dim strDocumentName
               
               
                objWord.Visible = True
               
                Set objDocument = objWord.Documents.Open("C:\Мои проекты\0136\order.doc")
               
                With objDocument.MailMerge
                        .MainDocumentType = wdFormLetters
                        .OpenDataSource _
                                "C:\Мои проекты\0136\base.xls", _
                                ,,,,,,,,,, _
                                "Provider=Microsoft.Jet.OLEDB.4.0;Mode=Read;Extended Properties=""HDR=YES;IMEX=1;Jet OLEDB:Engine Type=35;""", _
                                "SELECT * FROM `Лист1$`"
                       
                        .Destination = wdSendToNewDocument
                        .SuppressBlankLines = True
                       
                        For i = wdDefaultFirstRecord To .DataSource.RecordCount
                                .DataSource.FirstRecord = .DataSource.ActiveRecord
                                .DataSource.LastRecord = .DataSource.ActiveRecord
                               
                                Set objCurrResultDocument = Nothing
                               
                                strDocumentName = .DataSource.DataFields.Item("SNP").Value
                               
                                .Execute False
                                .DataSource.ActiveRecord = wdNextRecord
                               
                                Do
                                        WScript.Sleep 100
                                Loop Until Not objCurrResultDocument Is Nothing
                               
                                objCurrResultDocument.Close
                        Next
                End With
               
                objDocument.Close False
                WScript.DisconnectObject objWord
                objWord.Quit
               
                WScript.Quit 0
               
                Sub objWord_MailMergeAfterMerge(ByVal objResultDocument, ByVal objMainDocument)
                        objResultDocument.SaveAs "C:\Мои проекты\0136\" & strDocumentName & ".doc"
                        Set objCurrResultDocument = objResultDocument
                       
                        rem WScript.Echo "Mail Merge Complete: " & objResultDocument.FullName
                End Sub
        </script>
</job>


Iska 08-12-2017 00:23 2783107

mcintosh55, так… Это уже хорошо. Теперь двигаемся дальше.

1. Как я понимаю, Вам сие придётся проделывать достаточно регулярно, так? Как было бы Вам удобнее и проще работать?
2. Существует вполне ненулевая вероятность, что в одном списке окажутся разные люди с полным совпадением ФИО (или даже один и тот же, но с разными постановлениями). Пока это даже никак не проверяется — файл с именем, стоящим ниже по списку просто тупо затрёт ранее созданный файл. Что можно придумать, исходя из исходных данных — что там есть уникального в списке (скажем, тот же номер постановления, нет?

mcintosh55 08-12-2017 02:03 2783117

Цитата:

Цитата Iska
Как было бы Вам удобнее и проще работать? »

в принципе на данном этапе все ок, Я завтра напишу cmd скрипт которые будет запускать скрипт wsf скрипт (все системе все скрипты открываются как txt файл ).
Я думаю можно по пробовать фио+столбик personal account это число уникальное
Код:

strDocumentName = .DataSource.DataFields.Item("SNP" & "_" & "personal account").Value
что типа такого, но у меня не получилось вываливает в ошибку

mcintosh55 08-12-2017 14:09 2783187

Сегодня протестировал скрипт, почему то рандомно он останавливается т.е. может создать новых файлов из всего списка а может и остановиться 10 или 20 или 24 файлов каждый раз по разному

Iska 08-12-2017 15:03 2783194

Цитата:

Цитата mcintosh55
Я думаю можно по пробовать фио+столбик personal account это число уникальное »

Код:

strDocumentName = .DataSource.DataFields.Item("SNP").Value & "_" & .DataSource.DataFields.Item("personal account").Value
Цитата:

Цитата mcintosh55
Сегодня протестировал скрипт, почему то рандомно он останавливается т.е. может создать новых файлов из всего списка а может и остановиться 10 или 20 или 24 файлов каждый раз по разному »

На одном и том же файле-списке?

mcintosh55 08-12-2017 15:09 2783195

Цитата:

Цитата Iska
На одном и том же файле-списке? »

нет на разных такое ощущение что он теряет фокус окна, к примеру пока выполнялся скрипт Я открыл cmd консоль и скрипт остановился, до этого еще был браузер открыт другой документ word если делаешь активное например браузера может скрипт остановиться. После того как все закрыли скрипт отработал полностью 2 из 3 раза.

Iska 08-12-2017 15:36 2783200

mcintosh55, ну, с окнами там работы никакой не ведётся по причине отсутствия такового кода. То, что окна новосозданных документов Word мельтешат в процессе — так я пока специально оставил окно приложения Microsoft Word видимым на случай возникновения ошибок.

mcintosh55, мне вот ещё что подумалось: Вы исполняете .wsf под консольным cscript.exe или под GUI'шным wscript.exe? Я-то всегда работаю под консолью, и у меня именно cscript.exe задан исполнителем (в противовес wscript.exe, используемому по умолчанию). Так вот, под wscript.exe от команд WScript.Echo будут появляться не сообщения в консоли, а окна сообщений, и после появления такого окна сообщения скрипт действительно будет останавливаться до тех пор, пока будет это окно сообщения не будет закрыто.

mcintosh55 08-12-2017 15:46 2783205

Код:

strDocumentName = .DataSource.DataFields.Item("SNP").Value & "_" & .DataSource.DataFields.Item("personal account").Value
у нас скрипт выдал ошибку в "personal account" надо поставить _ а то ошибку выдает Я поменял и в скрипте и в таблице
Код:

strDocumentName = .DataSource.DataFields.Item("SNP").Value & "_" & .DataSource.DataFields.Item("personal_account").Value
Скрипт Я запускаю по двойному щелчку, по Вашему комментарию Я понял что скрипт надо запускать через cscript.exe. Буду пробовать, отпишусь что и как.

через cscript.exe все отлично отрабатывает

mcintosh55 08-12-2017 16:02 2783207

Большое спасибо, Iska!!! Все отлично работает, то что окна открываются закрываются это не страшно.

Iska 08-12-2017 16:16 2783210

Цитата:

Цитата mcintosh55
у нас скрипт выдал ошибку в "personal account" надо поставить _ а то ошибку выдает Я поменял и в скрипте и в таблице »

Ну, я не проверял, просто воспользовался Вашим кодом.

Цитата:

Цитата mcintosh55
Скрипт Я запускаю по двойному щелчку, по Вашему комментарию Я понял что скрипт надо запускать через cscript.exe. Буду пробовать, отпишусь что и как.
через cscript.exe все отлично отрабатывает »

Периодически выпадает из памяти, что надо этот момент учитывать.

Цитата:

Цитата mcintosh55
Все отлично работает, то что окна открываются закрываются это не страшно. »

Это можно будет убрать, просто закомментировав:
Код:

' objWord.Visible = True
Но что дальше? В первую очередь я имею в виду указание путей к файлам непосредственно в коде.

mcintosh55 08-12-2017 20:02 2783238

Цитата:

Цитата Iska
Но что дальше? В первую очередь я имею в виду указание путей к файлам непосредственно в коде. »

в принципе тот функционал, что сейчас есть его хватает, все файлы лежат в папках и Я сказал пользователю ни чего не трогать не передвигаем редактируем только это и это. Ну максимум на что Я бы посмотрел это как в excel файле сделать печатную форму т.е. те данные которые храниться word как то перенести в excel. Ну и переделать скрипт которые выше т.е. встроить его в excel документ, что я имею веду к примеру пользователь выделяет строку и нажимает кнопку печать и печатается конкретный документы или нажимаю кнопку печатать всю таблицу и печатается вся таблица в виде печатной форме. Просто интересен момент с печатной формой в excel + можно уйти от слияния.

А так весь функционал хватает.


Время: 17:10.

Время: 17:10.
© OSzone.net 2001-