Экспорт Excel в HTML с использованием PHP на Windows - PullRequest
1 голос
/ 13 июня 2011

Я использую 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 Ответ

0 голосов
/ 14 июня 2011

В любом случае, мне удалось разобраться в проблеме с дальнейшим изучением руководства разработчика 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 Используйте компонент Chart. Устаревший в Excel 2007. xlHtmlList 2 Используйте компонент сводной таблицы. Устаревший в Excel 2007. xlHtmlStatic 0 Используйте статический (неинтерактивный) HTML только для просмотра.

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

Спасибо, cweiske:)

...