Заполнение полей слов из файла .DAT с помощью VBA - PullRequest
0 голосов
/ 24 февраля 2012

Я работаю с приложением Java, которое собирается написать файл .dat, который должен использоваться в качестве шаблона для заполнения шаблона Word, в котором есть fields и bookmarks.Я потратил довольно много времени на поиск информации о .dat файлах, используемых для создания шаблонов Word field/bookmark, и мне еще предстоит что-либо придумать.

У меня есть код VBA, написанный для того, чтобы пойти и получитьфайл, но у меня есть две большие проблемы, на которые я не могу найти ответ.Буду признателен, если кто-нибудь ответит следующее:

  1. Как должен выглядеть код файла .dat?(не код для его генерации, имейте это, но как его отформатировать для достижения желаемого результата)

  2. После того, как я открою файл .dat с помощью VBA, я могунужно что-нибудь сделать с кодом, чтобы он заменил fields/bookmarks своими данными?

В настоящее время у меня есть код, чтобы выйти и получить файл .dat и открыть его,У меня есть код, написанный для вставок для закладок и полей, но, видя, что я не был уверен, существует ли конкретная структура для .dat файлов для vba для чтения, я не знал, было ли это уместно или нет,Спасибо Жан-Франсуа Корбетту и Роману за разъяснение этого.

Принимая это во внимание, я решил использовать следующий .dat формат файла.

File.dat
RequisitionHeader_requisitionNumber=11-2019
RequisitionHeader_poNumber=889-0936
RequisitionHeader_orderDate=11/12/1901

С этим,используя VBA, который у меня есть сейчас при открытии файла, нужно ли писать текстовый анализатор внутри VBA, чтобы найти и заменить значения в соответствующем поле / bookmarkName?

Ответы [ 2 ]

0 голосов
/ 25 февраля 2012

ОК, теперь можно лучше понять. Итак, у вас уже есть код для циклического перемещения по закладкам и полям и помещения в него значений, и ваша проблема заключается в том, чтобы узнать, как вы можете читать данные из файла с VBA. Помните, что VBA - это не что иное, как Visual Basic 6.0, интегрированный в приложение Office. Таким образом, доступ к файлам ограничен старыми процедурами Basic I / O. Вы можете найти первую информацию здесь . С другой стороны, при работе с VBA вы всегда можете использовать Windows Scripting Host для чтения всех строк текстового файла в память / в переменную, например:

Set fso=CreateObject("Scripting.FileSystemObject")
If fso.FileExists(FileName) Then
   Set f=fso.OpenTextFile(FileName,1)
   Content=f.ReadAll
   f.close
   (rest ommitted)

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

Существует также старый подход к использованию функций, связанных с файлами INI; Вы можете найти это в некоторых старых руководствах. Здесь следует помнить, что функция Windows API для INI-файлов не читает более 256 символов после знака =.

0 голосов
/ 24 февраля 2012

Сначала вам нужно понять структуру данных входных данных (в файле .dat - это текстовые данные или двоичные данные, каковы логические шаблоны, после которых моделируются данные), а затем найти хороший способ чтенияданные (откройте файл в VBA, найдите и получите доступ к соответствующим данным в файле из VBA), возможно, вам придется проверить данные (проверить целостность данных, формат и т. д.) и, наконец, заполнить данные в поляв словесном документе.

Как указывал Жан-Франсуа Корбетт ранее: «Если вы не дадите некоторое представление о том, над чем работаете, возможны только общие ответы».

...