Программируемое создание таблиц Excel (формат 97 - 2003) - PullRequest
1 голос
/ 14 декабря 2010

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

Существуют ли учебники о том, как делать такие вещи?

Приложение выдаст .xls

Спасибо

Ответы [ 5 ]

6 голосов
/ 14 декабря 2010

У вас есть три варианта:

  1. Вывод файла CSV . Несмотря на то, что Excel не является файлом XLS, он более чем способен открыть такой файл, и его чрезвычайно легко создать. Вам не нужно ничего, кроме стандартного C ++ для реализации этого решения. Это, безусловно, самый простой и быстрый способ вывода в Excel (или в любую другую программу для работы с электронными таблицами).

  2. Использовать OLE-автоматизацию. У Microsoft даже есть статья базы знаний , в которой приведен пример вызова Excel из собственного приложения C ++ и заполнения некоторых значений. Если вам абсолютно необходимо вывести файлы XLS, это самый простой способ. Обратите внимание, что для работы пользователей на компьютере должен быть установлен Excel.

  3. Создайте свой собственный писатель XLS. Даже не беспокойтесь об этой опции, если вы действительно не хотите создавать файлы XLS, не требуя установки Excel на компьютерах конечных пользователей. Варианты 1 и 2 более чем хороши практически для любого приложения.

1 голос
/ 14 декабря 2010

Самое простое, что нужно сделать, это просто создать CSV-файл .Если у вас есть заголовки столбцов, поместите их в первый ряд.CSV-файлы можно открывать в Excel, как если бы они были электронными таблицами Excel.

1 голос
/ 14 декабря 2010

Вам не нужно перепроектировать формат XLS; Microsoft документирует файл Excel в формате здесь . Из-за эволюции Excel с годами это не совсем чистая спецификация.

Если вы не против установить копию Excel вместе с вашей программой, использовать OLE Automation будет намного проще.

0 голосов
/ 14 декабря 2010

Похоже, есть другая альтернатива под названием ExcelFormat .Хотя я не пробовал.

0 голосов
/ 14 декабря 2010

Здесь есть хитрость: сохраните таблицы .html с расширением .xls, и Excel сможет их прочитать (т. Е. Excel сможет прочитать выходные данные элемента управления DataGrid).

Но, если вы хотите создать «настоящие» файлы Excel, то вы можете использовать Excel Interop (который может быть грязным, требует установки Excel и PIA на компьютер и требует тщательного управления памятью (так как его COM)).Вы также можете выбрать стороннюю библиотеку, такую ​​как FlexCel, которая позволит избежать многих проблем InterOp, но не даст вам «полной» функциональности Excel (надстройки, пользовательские макросы vba и т. Д.).Тем не менее, для большинства применений сторонняя библиотека должна сделать свое дело.

...