Экспорт Excel в html с использованием php в Windows

#php #com #export #excel-2007

#php #com #экспорт #excel-2007

Вопрос:

Я использую xampp / wamp в Windows и хочу преобразовать книгу Excel в HTML-файл.

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

Я использую библиотеку COM php для открытия Excel, затем читаю книгу и пытаюсь сохранить ее как html, однако у меня возникают проблемы с этим

Это мой код

     $excel = new COM("Excel.Application",NULL,CP_UTF8) or die("Unable to instantiate Excel");
    $excel->Application->Visible=1;
    $excel->DisplayAlerts="False";
    $workBook=$excel->Workbooks->Open(realpath("./example-03e-02.xlsx"));
     $workBook->PublishObjects->Add(xlSourceSheet, "c:\temp\x.htm", "Sheet1", "", xlHtmlStatic, "test_27778", "");
 $workBook->Publish (True);
 $workBook->AutoRepublish(0);
    $excel->Workbooks->Close();
    $excel->Application->Quit();
    $excel = null;
    $workBook=null;
  

Метод PUlishObjects продолжает сообщать мне, что xlSourceSheet не определен, я пытался передать его в виде строки «xlSourceSheet», но он продолжает указывать несоответствие типа параметра в одном или другом. В приведенном выше случае указано несоответствие типа параметра 6;

если я удалю необязательные параметры, такие как divid и title (последние 2), это покажет несоответствие типов в исходном диапазоне, которое, очевидно, пустое, поскольку я экспортирую лист.

Любой орган может пролить некоторый свет на это и сказать мне, что я делаю неправильно.

Спасибо

Ответ №1:

В любом случае, мне удалось решить проблему, немного покопавшись в руководстве разработчика Excel.

Мне просто пришлось заменить xlSourceSheet и xlHtmlstatic их соответствующими номерами, которые я нашел в документах. xlSourceSheet равен 1, а xlHtmlStatic равен 0.

Если кто-нибудь ищет эти коды, вот они

xlSourceAutoFilter 3 Диапазон автофильтра xlSourcePivotTable 6 Отчет сводной таблицы xlSourcePrintArea 2 Диапазон ячеек, выбранных для печати xlSourceQuery 7 Таблица запросов (диапазон внешних данных) xlSourceRange 4 Диапазон ячеек xlSourceSheet 1 Весь рабочий лист xlSourceWorkbook 0 Рабочая тетрадь

xlHtmlCalc 1 Используйте компонент электронной таблицы. Не рекомендуется в Excel 2007. xlHtmlChart 3 Используйте компонент диаграммы. Не рекомендуется в Excel 2007. xlHtmlList 2 Используйте компонент сводной таблицы. Не рекомендуется в Excel 2007. xlHtmlStatic 0 Используйте статический (неинтерактивный) HTML только для просмотра.

 $object=$excel->ActiveWorkbook->PublishObjects->Add(1,"c:\temp\x.htm","Sheet1",0)->Publish(1);
  

Спасибо cweiske 🙂