Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Как добавить поддержку форматов Office 2007 в Excel 2003 для работы с файлами .xlsx, .xlsm, .xlsb

Delphi , Интернет и Сети , Браузер

Для начала разберемся с проблемой, которая стоит перед разработчиками, использующими Excel 2003 для работы с файлами нового формата, начиная с Office 2007. Эти форматы файлов включают .xlsx, .xlsm и .xlsb. Excel 2007 и более новые версии могут работать с этими расширениями без дополнительных утилит, но для Excel 2003 необходимо установить дополнительный пакет совместимости.

Проверка версии Excel и установленного пакета совместимости

Для решения этой задачи необходимо сначала определить версию установленного Excel, и если это Excel 2003, проверить, установлен ли пакет совместимости. В примере кода ниже показано, как это можно сделать, используя Object Pascal в среде Delphi.

uses
  SysUtils;

function IsOffice2007CompatibilityPackInstalled: Boolean;
var
  WSHShell: OLEVariant;
  RegKey, rKeyWord: string;
begin
  WSHShell := CreateOleObject('WScript.Shell');
  RegKey := 'HKEY_CLASSES_ROOT\Installer\Products\00002109020090400000000000F01FEC\';
  try
    rKeyWord := WSHShell.RegRead(RegKey & 'ProductName');
  except
    // Игнорирование ошибки, если ключ не найден
  end;
  Result := (rKeyWord = 'Compatibility Pack for the 2007 Office system');
end;

procedure LoadExcelFile(const sFileNameVorlage: string);
var
  oVersionscheck: TOleObject;
begin
  if (ExtractFileExt(sFileNameVorlage) = '.xlsx') or
     (ExtractFileExt(sFileNameVorlage) = '.xlsm') or
     (ExtractFileExt(sFileNameVorlage) = '.xlsb') then
  begin
    // Определение версии Excel
    oVersionscheck := CreateOleObject('Excel.Application');
    try
      if StrToIntDef(Copy(oVersionscheck.version, 1, 2), 0) <= 11 then
      begin
        // Если версия Excel 2003, проверяем установлен ли пакет совместимости
        if not IsOffice2007CompatibilityPackInstalled then
        begin
          ShowMessage('Предупреждение: Excel не может открыть этот файл.');
          Exit;
        end;
      end;
    finally
      oVersionscheck.Quit;
      oVersionscheck := nil;
    end;
  end;
  // Дальнейший код по работе с файлом
end;

Инструкция по использованию

Чтобы добавить поддержку форматов Office 2007 в Excel 2003, необходимо выполнить следующие шаги:

  1. Установить пакет совместимости для Office 2007, который доступен по ссылке Microsoft Office 2003 compatibility pack.
  2. Интегрировать функцию IsOffice2007CompatibilityPackInstalled в ваш код для проверки наличия пакета совместимости перед открытием файлов в форматах .xlsx, .xlsm и .xlsb.

Этот код можно использовать в проектах, написанных на Delphi, для проверки наличия пакета совместимости Office 2007 перед попыткой открытия файлов, созданных в более новых версиях Office.

Создано по материалам из источника по ссылке.

Установка пакета совместимости для работы Excel 2003 с файлами Office 2007.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




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


:: Главная :: Браузер ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-03-11 11:57:52/0.011001110076904/0