Экспорт в excel из Delphi без excel

Я хочу экспортировать данные в Excel из Delphi без необходимости иметь копию Excel, возможно ли это?

Н.Б. CSV не подойдет.


person AJM    schedule 22.03.2010    source источник


Ответы (8)


FlexCel, ранее открытый исходный код, теперь управляется TMS (http://www.tmssoftware.com/site/flexcel.asp) прекрасно работает.

Вы также можете проверить TmxNativeExcel на http://www.torry.net. Поставляется бесплатно и использует родной формат Biff. Я не пробовал это, хотя.

person stackoverflow    schedule 22.03.2010

Попробуйте zexmlss. Эта библиотека может создавать и загружать файлы формата Excel 2003 XML. Поддержка объединенных ячеек, границ, вертикального и горизонтального выравнивания и прочего. Zlib лицензия. Работа с delphi 6, 7, 9-14 и lazarus.

person Hikikomori    schedule 07.11.2010
comment
Для справки: lib переехала на GitHub и имеет один форк ATM. Ни у меня, ни у Авеми сейчас нет времени, чтобы согласовать изменения. В основном он занимался форматами FPC и ODS, а мне приходилось работать над XE2 и XLSX. И, очевидно, у нас разные вкусы в отношении стиля кодирования :-) - person Arioch 'The; 22.06.2013
comment
Я могу порекомендовать zexmlss - кажется, хорошо работает для XLSX и ODT, форматирует , формулы, и это бесплатно. Мне пришлось внести небольшое изменение в код, чтобы он скомпилировался в Delphi 10 Seattle, но это качает - person Reversed Engineer; 01.08.2016
comment
Пробовал, но не получилось - проблема с zip, не могу добавить. - person TomR; 14.10.2016

Я считаю, что можно создавать документы MS Office в формате HTML. Вам не нужно открывать их в веб-браузере или что-то в этом роде, файл по-прежнему может иметь расширение .xls и открываться в Excel, как обычно.

Я только что создал новую электронную таблицу и вставил числа 1-3 в первые три ячейки столбца A и сохранил ее как HTML. Там была куча лишнего беспорядка, который, вероятно, не весь необходим. Я вырезал все, что мог, вот то, что выглядит минимумом для создания рабочей электронной таблицы.

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

<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<!--[if gte mso 9]><xml>
 <x:ExcelWorkbook>
  <x:ExcelWorksheets>
   <x:ExcelWorksheet>
    <x:Name>Sheet1</x:Name>
    <x:WorksheetOptions>
     <x:Selected/>
     <x:Panes>
      <x:Pane>
       <x:Number>3</x:Number>
       <x:ActiveRow>3</x:ActiveRow>
      </x:Pane>
     </x:Panes>
     <x:ProtectContents>False</x:ProtectContents>
     <x:ProtectObjects>False</x:ProtectObjects>
     <x:ProtectScenarios>False</x:ProtectScenarios>
    </x:WorksheetOptions>
   </x:ExcelWorksheet>
  </x:ExcelWorksheets>
 </x:ExcelWorkbook>
</xml><![endif]-->
</head>
<body>

<table x:str>
    <tr>
        <td x:num width=64>1</td>
    </tr>
    <tr>
        <td x:num>2</td>
    </tr>
    <tr>
        <td x:num>3</td>
    </tr>
</table>
</body>
</html>
person Matt Blaine    schedule 22.03.2010
comment
Кажется, отличное решение, спасибо, Мэтт. Работает в Excel 2003, но я не уверен, что пользователям придется устанавливать загрузку совместимости для Office 2010, чтобы использовать формат HTML, который вы предлагаете. Кто-нибудь пробовал это с другими версиями Office? - person Manuel Gonzalez; 15.11.2012
comment
Круто, ты сэкономил мне часы поиска в библиотеке - person Michael Gendelev; 12.12.2018

oExport — собственная библиотека импорта/экспорта Delphi XLSX/ODS

  • не требуются внешние dll-библиотеки
  • не зависит от установки Excel или Calc (без OLE)
  • полная поддержка юникода даже для D7, D2007
  • поддерживаемые типы ячеек: строка, число, процент, формула, время, дата, дата и время
  • форматирование ячейки: ширина+высота ячейки, выравнивание по горизонтали+вертикали, перенос текста, шрифт, цвет фона, границы
  • диапазон столбцов/строк
  • проверено и работает под Delphi 2007 и XE2 32bit+64bit: должен быть совместим со всеми версиями от D7 до XE2
  • НОВЫЙ OFiller: заполнение шаблонов DOCX (Word 2007), ODT (OpenOffice Writer), XLSX (Excel 2007), ODS (OpenOffice Calc)

http://www.kluug.at/xlsx-ods-delphi.php

под лицензией тройной лицензии MPL/GPL/LGPL Версия: MPL 1.1/GPL 2.0/LGPL 2.1

person Erwan    schedule 14.03.2012
comment
Пожалуйста, не добавляйте это к множеству вопросов. - person ; 14.03.2012
comment
Не (или больше) не с открытым исходным кодом, хотя - person Eric Grange; 14.12.2012
comment
OExport не компилируется - модуль OWideSupport не найден! - person TomR; 14.10.2016

SMExport от Scalabium (scalabium.com) включает множество форматов, включая формат Excel с установленным Excel или без него.

person Rob McDonell    schedule 09.05.2010

Упомянутый ранее NativeExcel принадлежит Nika-Soft. Не бесплатно, но работает нормально. Пользуюсь уже больше года без проблем. http://www.nika-soft.com/nativeexcel2/

person Christian    schedule 09.05.2010

Библиотека TXLSFile v.4.0. и компоненты XLSExport

Мы успешно использовали с D2007, D2009 и D2010

Что такое TXLSFile

  TXLSFile is a Delphi library for reading and writing MS Excel 
  XLS files. It is based on direct reading and writing of files, 
  and works without OLE Automation with Microsoft Excel. 

  TXLSFile is  distributed  with  XLSExport  components  package. 
  XLSExport is a Delphi components package  for quick data 
  export  into  MS Excel file with  one line  of code.  

http://sm-software.com

person rhazell    schedule 09.05.2010

Есть очень простой способ добиться этого, используя текстовый файл. Просто выведите данные, за каждым полем следует запятая, за которой следует возврат каретки. Сохраните этот файл с расширением .CSV. Это все еще должно работать в Excel; Я использую Open Officw в эти дни

person rmuirhead    schedule 22.12.2013
comment
ОП сказал: CSV не подойдет. - person Reversed Engineer; 01.08.2016