Скачать
Компоненты VCL\Работа с XLS и XLSX

:: Меню ::
:: На главную ::
:: FAQ ::
:: Заметки ::
:: Практика ::
:: Win API ::
:: Проекты ::
:: Скачать ::
:: Секреты ::
:: Ссылки ::

:: Сервис ::
:: Написать ::

:: MVP ::

:: RSS ::

Яндекс.Метрика
TXLSFile v4.0 (D3-XE7)
TXLSFile это Delphi-библиотека для чтения и записи .xls-файлов напрямую без установленного Microsoft Office. Особенности:
  • Быстродействие - скорость чтения и записи примерно 75 000 ячеек в секунду;
  • TXLSFile не требует установленного Microsoft Excel;
  • TXLSFile поддерживает формат MS Excel 97, 2000, XP, 2003 (BIFF8);
  • XLS-файлы созданные с помощью TXLSFile могут быть открыты в Excel 2007;
  • XLS-файлы созданные с помощью TXLSFile могут быть открыты в OpenOffice;
  • Исходные тексты совместимы с Delphi 3-XE2;
  • XLSExport компоненты поставляются вместе с библиотекой TXLSFile;
  • Зарегистрированная версия содержит в себе полное описание продукта вместе с небольшим количеством примеров;
  • TXLSFile также содержит в себе функции для экспорта данных в HTML и TXT файлы.
Пример использования
type
  TCells = class(XLSWorkbook.TCells)
  end;

implementation

procedure TForm1.Button1Click(Sender: TObject);
var
  xf: TXLSFile;
begin
   xf := TXLSFile.Create;
   try
      xf.OpenFile('in.xls');
      // Вставка новой строки после второй строки
      TCells(xf.Workbook.SheetByName('Sheet1').Cells).InternalInsertRow(1);
      xf.SaveAs('out.xls');
   finally
      xf.Destroy;
   end;
end;
Скачать. 545kb ZIP

NativeExcel v3.0.21 (D4-D10.1 Berlin)
Пакет для разработчиков программных продуктов, которым требуется создавать новые документы Excel, либо работать с уже существующими, без использования стандартного компонента OLE Excel.
Скачать. 1.1Mb ZIP

XLSReadWriteII 5.20.62 (D10.2)
Компоненты для прямого доступ к файлам Excel (XLSX, без использования Excel).

Пример использования
// Получение списка страниц
procedure TForm1.Button1Click(Sender: TObject);
var
  i: Integer;
  s: string;
begin
   s := '';
   with XLSReadWriteII51 do
   begin
      LoadFromFile('d:\test.xlsx');
      for i := 0 to Count-1 do
         s := s + Sheets[i].Name + ^M;
   end;
   ShowMessage(s);
end;

// Поиск текста
procedure TForm1.Button1Click(Sender: TObject);
var
  Sheet, Col, Row, TextPos: Integer;
  Text: string;
begin
   with XLSReadWriteII51 do
   begin
      LoadFromFile('d:\test.xlsx');
      BeginFindText;

      while True do
      begin
         if FindText('#', False) then
         begin
            GetFindData(Sheet, Col, Row, TextPos, Text);
            ShowMessage(
               Format(
                  'Лист: %d'^M'Колонка: %d'^M'Строка: %d'^M'Позиция в тексте: %d'^M'Текст: %s',
                  [Sheet, Col+1, Row+1, TextPos, Text]
               )
            );
         end
         else
            if MessageDlg('Поиск в документе завершен. Начать сначала?',
                          mtConfirmation, mbYesNo, 0) = mrYes then
               BeginFindText
            else
               Break;
      end;
   end;
end;

// Поиск области ячеек, занятых пользовательскими данными
uses
  Xc12Utils5;

procedure TForm1.Button1Click(Sender: TObject);
var
  CellArea: TXLSCellArea;
begin
   with XLSReadWriteII51 do
   begin
      LoadFromFile('d:\test.xlsx');

      // Sheets[0].CalcDimensions;
      // Sheets[0].CalcDimensionsEx;
      Sheets[0].MMUCells.CalcDimensions;
      CellArea := Sheets[0].MMUCells.Dimension;
      ShowMessage(
         Format(
            'Столбцы: с %d по %d'^M'Строки: с %d по %d',
            [CellArea.Col1+1, CellArea.Col2+1, CellArea.Row1+1, CellArea.Row2+1]
         )
      );
   end;
end;

// Добавление формулы
procedure TForm1.Button1Click(Sender: TObject);
begin
   with XLSReadWriteII51 do
   begin
      LoadFromFile('d:\test.xlsx');

      Sheets[0].MMUCells.AddFormula(0, 0, 'B4+D6', 0);
      SaveToFile('d:\test_out.xlsx');
   end;
end;

// Обращение к ячейке
procedure TForm1.Button1Click(Sender: TObject);
var
  s: string;
begin
   with XLSReadWriteII51 do
   begin
      LoadFromFile('d:\test.xlsx');

      Sheets[0].MMUCells.GetString(0, 0, s);
      ShowMessage(s);
      Sheets[0].AsString[0, 0] := '1';
      ShowMessage(Sheets[0].AsString[0, 0]);
      SaveToFile('d:\test_out.xlsx');
   end;
end;
Скачать. 4.4Mb ZIP