Как экспортировать данные в файл XLSB в PHP, используя общий сервер - PullRequest
0 голосов
/ 01 февраля 2019

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

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

PHP Fatal error:  Class 'COM' not found

Ниже код php код файла:

// include("DataType.inc");

header("Content-Type: text/html");

echo "Tutorial 29<br>";
echo "----------<br>";

// Create an instance of the class that exports Excel files
$workbook = new COM("EasyXLS.ExcelDocument");

// Create two sheets
$workbook->easy_addWorksheet_2("First tab");
$workbook->easy_addWorksheet_2("Second tab");

// Get the table of data for the first worksheet
$xlsFirstTable = $workbook->easy_getSheetAt(0)->easy_getExcelTable();

// Add data in cells for report header
for ($column=0; $column<5; $column++)
{
    $xlsFirstTable->easy_getCell(0,$column)->setValue("Column " . ($column + 1));
    $xlsFirstTable->easy_getCell(0,$column)->setDataType($DATATYPE_STRING);
}

// Add data in cells for report values
for ($row=0; $row<100; $row++)
{
    for ($column=0; $column<5; $column++)
    {
        $xlsFirstTable->easy_getCell($row+1,$column)->setValue("Data ".($row + 1).", ".($column + 1));
        $xlsFirstTable->easy_getCell($row+1,$column)->setDataType($DATATYPE_STRING);
    }
}

// Set column widths
$xlsFirstTable->easy_getColumnAt(0)->setWidth(100);
$xlsFirstTable->easy_getColumnAt(1)->setWidth(100);
$xlsFirstTable->easy_getColumnAt(2)->setWidth(100);
$xlsFirstTable->easy_getColumnAt(3)->setWidth(100);

// Export the XLSB file
echo "Writing file: C:\Samples\Tutorial29.xlsb<br>";
$workbook->easy_WriteXLSBFile("./Tutorial29.xlsb");

// Confirm export of Excel file
if ($workbook->easy_getError() == "")
    echo "File successfully created.";
else
    echo "Error encountered: " . $workbook->easy_getError();

// Dispose memory
$workbook->Dispose();

Всем, кто имеет решение для такого рода вопросов, заранее спасибо.

1 Ответ

0 голосов
/ 19 февраля 2019

Ошибка вызвана тем, что сервер PHP не поддерживает COM-библиотеки, написанные на .NET.Вы должны добавить расширение к вашему PHP-серверу в файле php.ini.

extension=php_com_dotnet.dll 

https://www.easyxls.com/manual/troubleshooting/class-com-not-found.html

ОБНОВЛЕНИЕ: Это решение для ошибки, которую вы получаете, но я только чтозаметил, что ты на Unix.COM-объекты не поддерживаются в Unix.Вы должны установить EasyXLS для Java , а также PHP / Java Bridge .

...