Управлять книгами Excel программно

У меня есть книга Excel, которую я хочу использовать в качестве шаблона. Он имеет несколько рабочих таблиц, один из которых создает симпатичные графики и суммирует числа. Лист 1 должен быть заполнен данными, сгенерированными другой программой. Данные поступают в файл с разделителями табуляции.

В настоящее время пользователь импортирует файл с разделителями табуляции в новую книгу, выбирает все и копирует. Затем идет к шаблону и вставляет данные в sheet1.

Это большой объем данных, 269 столбцов и более 135 000 строк. Это громоздкий процесс, и пользователи не являются опытными пользователями Excel. Все, чего они действительно хотят, - это красивые графики.

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

Кто-нибудь может предложить лучший метод / язык программирования, который мог бы достичь этого?

4 ответа

Решение

POI является ответом. Посмотрите на сайт Apache. Вы можете использовать Java для чтения данных и размещения их в ячейках. Примеры очень простые.

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

Вы сказали, что у вас есть данные, сгенерированные другой программой. Что за программа? Программа, которую вы разработали самостоятельно, и где вы можете добавить функцию Excel-импорта? Или сторонняя программа с графическим интерфейсом, который не может быть легко автоматизирован?

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

Смотри сюда:

Создать файл Excel (.XLS и.XLSX) из C#

Есть NPOI (версия POI для.NET Framework), так что вы можете писать код на C#, если хотите.

Если вы используете две книги - одну для данных и одну для графиков - и не обновляете ссылки автоматически, вы можете использовать макрос для получения данных (возможно, соединение ODBC, если файл в формате, который он может прочитать - длинный снимок) и затем свяжите диаграммы с рабочей книгой данных.

Используйте макрос, чтобы обновить ссылки и сгенерировать диаграммы, а затем отправить их и надеяться, что никто не обновит ссылки.

Другие вопросы по тегам