Получение данных базы данных на существующей вкладке документа Excel - PullRequest
1 голос
/ 29 ноября 2011

У меня есть скрипт, который берет данные из таблицы базы данных MySQL, создает новый документ .csv excel и вставляет туда все данные.Теперь обратите внимание, что этот сценарий создает новый CSV-файл.

Часть сценария:

$result = mysql_query("SHOW COLUMNS FROM ".$table."");
$i = 0;
if (mysql_num_rows($result) > 0) {
    while ($row = mysql_fetch_assoc($result)) {
        if($row['Field'] != 'id'){
            $csv_output .= $row['Field']."; ";
            $i++;
        }
    }
}
$csv_output .= "\n";

$values = mysql_query("SELECT title, firstname, initials, lastname, address, address_nr, emailaddress, zipcode, city, phone, mobile, website FROM ".$table." WHERE addressbook = '$addressbook_id'");
while ($rowr = mysql_fetch_row($values)) {
    for ($j=0;$j<$i;$j++) {
        $csv_output .= $rowr[$j]."; ";
    }
    $csv_output .= "\n";
}

$filename = $file."_".date("Y-m-d_H-i",time());
header("Content-type: application/vnd.ms-excel");
header("Content-disposition: csv" . date("Y-m-d") . ".csv");
header("Content-disposition: filename=".$filename.".csv");
print $csv_output;
exit;

Теперь возникает проблема.Компания, которой нужны эти данные, уже создала файл Excel .xlsx, содержащий необходимые невидимые столбцы, плюс столбцы уже имеют разные имена, и файл имеет две разные вкладки.Один с текстом, а другой - с данными.

Проблема 1: если я загружаю этот файл на свой веб-сервер, как я могу заставить скрипт использовать этот файл вместо создания нового?

Проблема 2: Как ее можно сохранить в виде файла .xlsx вместо .csv?

Проблема 3: На листе 2 вкладки.Как данные могут быть вставлены во 2-ю вкладку с именем «2. data»?

Есть идеи?

1 Ответ

0 голосов
/ 29 ноября 2011

Пожалуйста, посмотрите на этот пост: Как изменить существующий файл Excel с помощью PHP?

Я надеюсь, что с помощью информации вы сможете решить вашу проблему.

Вам понадобятся пакеты Pear для PHP.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...