Эффективные способы оптимизации таблицы в Word

Оптимизация заполнения таблицы в MS Word

У меня стоит задачка в заполнении таблицы в MS Word. Пытаюсь сделать двумя способами: В первом способе требуется ускорить процесс заполнения таблицы, занимает очень много времени на 1500 записей 15-20 минут. Во втором способе проблема с получением вставленной таблицы.

Я ее пытаюсь получить из текущего Word.Range (Word.Range.Tables[1]), в который вставляю таблицу, но мне почему-то не возвращает мою таблицу. Пока только на одном компьютере, не знаю как исправить эту ситуацию. Вставка таблицы через HTML файл не лучший вариант, потому что потом нужно доставлять многострочный текст и картинки. 1) Заполняю таблицу очень просто.

Word.Table.AddRow(); Word.Row[indexRow].Cell[indexColumn].Range.Text = "Требуемый текст" 

2) Заполнение таблицы заключается в том, что я сначала создаю HTML файл с таблицей, потом вставляю этот файл в MS Word.

Word.Range.InsertFile("path.html") 

Место куда вставляю определяю через закладку в шаблоне.

Word.ActiveDocument.Bookmarks["Table"].Range 

Требуется совместимость с MS Word 2003 — 2013. Сторонние библиотеки использовать не могу, только стандартную Interop.Microsoft.Word.

14.2k 12 12 золотых знаков 44 44 серебряных знака 77 77 бронзовых знаков
задан 15 янв. 2017 в 15:27
dosymep dosymep
83 10 10 бронзовых знаков
тут возможно полезная инфа — stackoverflow.com/questions/25221020/…
Commented 15 янв.

2017 в 15:51

Такой подход уже пробовал, при многострочном тексте не сработало у меня. Может я что то не так делал)) При многострочном тексте Word думал, что это новая строка, и не понятно как вставлять картинки при таком подходе

Самое просто- это отказаться от тормознутого interop в пользу OpenXml.

Это можно реализовать в качестве WCF-сервиса на котором будет стоять свежий офис.

На мой взгляд, это самое быстрое решение.

ответ дан 15 янв. 2017 в 16:30
iluxa1810 iluxa1810
24.8k 14 14 золотых знаков 76 76 серебряных знаков 189 189 бронзовых знаков

Тут уже я ничего сделать не смогу, минимальная конфигурация, на которой должно мое приложение запускаться — Это Windows XP и MS Word 2003

Commented 15 янв. 2017 в 16:38
Опять же не могу сделать такое))
Commented 15 янв.

2017 в 16:44
Commented 15 янв. 2017 в 16:46
На мой взгляд самое простое решение, нежели возиться с тормознутым interop.
Commented 15 янв.

2017 в 16:48

Честно говоря, вообще первый раз использовал ActiveX. Да еще и для Microsoft Word’а. Просто хотелось посмотреть всеж быстродействие. В принципе, получилось. Записываем следующий код в файл test.js и выполняем:

var app = new ActiveXObject("Word.Application"); app.Visible = true; var doc = app.Documents.Add(); var range = doc.Paragraphs(doc.Paragraphs.Count).Range; range.Text = "1,data12,data13n"+ "1,data22,data23n"+ "1,data32,data33n"+ "1,data22,data23n"+ "1,data32,data33n"+ "1,data22,data23n"+ "1,data32,data33n"+ // тут для теста "1,data22,data23n"+ // можно добавить "1,data32,data33n"+ // еще 3000 "1,data22,data23n"+ // подобных строк "1,data32,data33n"+ "1,data22,data23n"+ "1,data32,data33n"+ "1,data22,data23n"+ "1,data32,data33n"+ "1,data22,data23n"+ "1,data32,data33n"+ "1,data22,data23n"+ "1,data32,data33n"+ "1,data22,data23n"+ "1,data32,data33n"+ "1,data22,data23n"+ "1,data32,data33n"; var table = range.ConvertToTable(",",1,3); table.Borders.Enable = 1; table.Columns(1).SetWidth(32,0); 

Должен сформироваться документ с таблицей.

Извините, что на JavaScript’е — C# не знаю, впрочем, как и JavaScript тоже :). Но на С# и пробовать не на чем. Тем не менее, мой скрипт делал таблицу на 3000 строк в Microsoft Word около секунды-полторы. Я думаю, переделать на C# труда особого не составит.

Вариант с загрузкой HTML (JavaScript)

Получился вот такой вариант:

   
ABC
111
222

Уменьшение таблицы в Word

Узнайте, как уменьшить таблицу в Microsoft Word. Наше руководство поможет вам сделать это быстро и легко.

Большинство пользователей MS Word знают, что в этой программе можно создавать, заполнять и редактировать таблицы. В то же время текстовый редактор позволяет создавать таблицы произвольного или строго заданного размера; также есть возможность изменить эти параметры вручную. В этой небольшой статье мы расскажем вам обо всех способах сжатия таблицы в Word.

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

Способ 1: Ручное уменьшение таблицы

В левом верхнем углу каждой таблицы (если она активна) есть знак ее привязки, своего рода маленький знак плюса в квадрате. Его можно использовать для перемещения стола. В нижнем правом углу, расположенном напротив по диагонали, есть небольшой квадратный маркер, который позволяет изменять размер таблицы.

1. Наведите курсор на индикатор в правом нижнем углу таблицы. После того, как курсор превратится в двунаправленную диагональную стрелку, щелкните маркер.

2. Не отпуская левую кнопку мыши, перетащите этот маркер в нужном направлении, пока таблица не уменьшится до необходимого или минимально возможного размера.

3. Отпустите левую кнопку мыши.

При необходимости вы можете выровнять положение таблицы на странице, а Все данные, содержащиеся в ее ячейках.

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

Примечание. В этом случае размеры различных ячеек в таблице могут значительно отличаться. Этот параметр зависит от количества содержащихся в них данных.

Способ 2: Точное уменьшение размеров строк, столбцов и ячеек таблицы

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

1. Щелкните правой кнопкой мыши индекс позиции таблицы (знак плюса в квадрате).

2. Выберите «Свойства таблицы».

3. В первой вкладке открывшегося диалогового окна вы можете установить точное значение ширины для всей таблицы.

Примечание. Единица измерения по умолчанию — сантиметры. При необходимости их можно изменить в процентах и ​​указать проценты в размерах.

4. Следующая вкладка в окне «Свойства таблицы» — «Строка». Здесь вы можете установить желаемую высоту строки.

5. На вкладке «Столбец» вы можете установить ширину столбца.

6. То же самое со следующей вкладкой — «Ячейка» — здесь вы устанавливаете ширину ячейки. Логично предположить, что она должна быть равна ширине столбца.

7. После внесения всех необходимых изменений в окно «Свойства таблицы» вы можете закрыть его, нажав кнопку «ОК».

В результате вы получите таблицу, каждый элемент которой будет иметь строго заданные размеры.

Способ 3: Уменьшение отдельных строк и столбцов таблицы

В дополнение к ручному изменению размера всей таблицы и установке точных параметров для ее строк и столбцов Word также может изменять размер отдельных строк и/или столбцов.

1. Переместите курсор к границе строки или столбца, которые нужно уменьшить. Указатель изменится на двунаправленную стрелку с перпендикулярной линией в центре.

2. Перетащите курсор в том направлении, в котором вы хотите уменьшить размер выбранной строки или столбца.

3. При необходимости повторите то же действие для других строк и / или столбцов таблицы.

Выбранные строки и/или столбцы будут уменьшены в размере.

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

Оцените статью
InternetDoc.ru
Добавить комментарий