В настоящее время я экспортирую данные арендатора из моей базы данных MySql в таблицу Excel, используя приведенный ниже код.
<?php
require_once('../../../includes/config.inc.php');
require_once(MYSQL);
$query = "SELECT * FROM tenant"; //Define the SQL query
if ($result = $dbc->query($query))
{
$file_type = "vnd.ms-excel";
$file_ending = "xls";
header("Content-Type: application/$file_type");
header("Content-Disposition: attachment; filename=tenant_data.$file_ending");
header("Pragma: no-cache");
header("Expires: 0");
$seperator = "\t"; //define separator (defines columns in excel)
$field_count = $result->field_count;
for ($for_count = 1; $for_count < $field_count; $for_count++) //start of printing column names as names of MySQL fields
{
$result->field_seek($for_count);
$field_info = $result->fetch_field();
$field_name = $field_info->name;
$field_name_title = str_replace("_", " ", "$field_name");
$field_array[] = $field_name;
echo $field_name_title . $seperator;
}
$result->field_seek(0);
print("\n"); //end of printing column names
while($row = $result->fetch_assoc()) //start while loop to get data
{
$schema_insert = "";
for ($col_count = 0; $col_count < $field_count - 1; $col_count++)
{
$current_field = $field_array[$col_count];
if ($row[$current_field] != "")
{
$schema_insert .= "$row[$current_field]" . $seperator;
}
else
{
$schema_insert .= "" . $seperator;
}
}
$schema_insert = str_replace($seperator . "$", "", $schema_insert);
$schema_insert = preg_replace("/\r\n|\n\r|\n|\r/", " ", $schema_insert); //Replaces \n or \r with a space
$schema_insert .= "\t";
print(trim($schema_insert));
print "\n";
}
}
?>
В настоящее время работает код, однако у меня есть две проблемы:
1) Я хочу, чтобы столбцы в электронной таблице автоматизировали размер содержимого при создании.
2) В данных есть поле "Телефон", где числа имеют тенденцию начинаться с 0. В результате 0 в базе данных пропущено, и я думаю, что колонке нужно указать как строку.
Кто-нибудь знает, как это сделать? Я не хочу использовать PHPExcel, поскольку это кажется массивным чрезмерным усложнением, когда это все, что я хочу сделать.
В отсутствие ответа я в конце концов решил использовать класс PHPExcel.