Управлять книгами Excel программно - PullRequest
3 голосов
/ 26 марта 2010

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

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

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

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

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

Ответы [ 4 ]

2 голосов
/ 26 марта 2010

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

1 голос
/ 26 марта 2010

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

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

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

0 голосов
/ 10 июня 2011

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

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

0 голосов
/ 26 марта 2010

Смотрите здесь:

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

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

...