Вы можете использовать поле Word DATABASE для этого. Диалоговое окно для его вставки отсутствует на ленте, поэтому вам нужно найти его в Word Options и поместить в QAT или что-то подобное. Но он страдает от одной или двух проблем, поэтому, вероятно, лучше вставить поле вручную - используйте ctrl-F9, чтобы вставить пару специальных кодов скобок поля, чтобы вы имели
{ }
(Вы не можете просто набрать эти скобки на клавиатуре).
Тогда все между {} является обычным текстом. Предположим, давайте предположим, что ваш документ Excel называется c:\xl\mywb.xlsx, данные находятся на листе с именем Sheet1 $, и у вас есть 3 поля с именами Field1, Field2 и Field3. Тогда ваше первое поле DATABASE может выглядеть так:
{ DATABASE \d "C:\\xl\\mywb.xlsx" \s "SELECT cf1.[field1] FROM [Sheet1$] cf1 WHERE ((cf1.[field1] IS NOT NULL ))" \h }
Пожалуйста, обратите внимание на двойную обратную косую черту в имени пути. После того, как вы ввели это, выберите поле, нажмите F9, чтобы выполнить его, затем используйте Alt-F9, чтобы просмотреть результаты. Если они близки к тому, что вам нужно для вашего первого столбца, это может сработать для вас, а если нет, то, вероятно, самое время отказаться от этого подхода. Если сообщается об ошибке, это, вероятно, из-за опечатки.
После того, как один столбец заработал, скопируйте / вставьте поле базы данных и измените имена, чтобы
{ DATABASE \d "C:\\xl\\mywb.xlsx" \s "SELECT cf1.[field1] FROM [Sheet1$] cf1 WHERE ((cf1.[field1] IS NOT NULL ))" \h }
{ DATABASE \d "C:\\xl\\mywb.xlsx" \s "SELECT cf2.[field2] FROM [Sheet1$] cf2 WHERE ((cf2.[field2] IS NOT NULL ))" \h }
затем выберите F9, Alt-F9 снова. Если все хорошо, повторите для оставшихся полей.
Несколько заметок:
ГДЕ ((cf2. [Field2] NOT NULL)) нужно учитывать тот факт, что в ваших столбцах содержится разное количество ячеек. Но вам может понадобиться немного больше, и эта техника удалит все пустые ячейки, а не только пустые ячейки внизу столбца.
\h просто добавляет заголовок столбца.
"cf1", "cf2" - это "псевдонимы таблиц" SQL. Вы можете изобретать их по мере необходимости. Они не должны быть необходимы, но они есть, потому что без них Word, как правило, немного запутывается, как вы можете обнаружить, если попытаетесь вставить эти поля с помощью диалогового окна поля DATABASE (которое не вставляет эти псевдонимы).