2016-06-22 7 views
0

CSS работает в пользовательском интерфейсе, но не в Excel. Любой может помочь мне в этом, пожалуйста.Экспорт таблицы в файл Excel в php

Ниже код экспортирует таблицу в Excel, но не сможет предоставить место перед тегами.

<?php 
    echo $excel_data = '<table border="1"> 
     <thead> 
      <th align="left">S.No.</th> 
      <th align="left">Name</th> 
      <th align="left">DOJ</th> 
     </thead> 
     <tbody> 
      <tr> 
       <td align="left">1</td> 
       <td align="left">Sreekanth Kuriyala</td> 
       <td align="left">04-06-2015</td> 
      </tr> 
      <tr> 
       <td align="left">2</td> 
       <td style="padding-left:20px;">SK</td> 
       <td align="left">26-07-2015</td> 
      </tr> 
     </tbody> 
    </table>'; 
    $excel_file = 'Reports.xls'; 
    file_put_contents ($excel_file, $excel_data); 
?> 
</br> 
</br> 
<a href="<?php echo $excel_file; ?>" download>Export to Excel</a> 
+0

Я побежал и не видел проблемы. Что это значит, «невозможно предоставить пространство перед тегами»? Здесь нет CSS; это важно? –

+0

Я добавил css в тег. Для одного из тегов td я дал padding-left: 20px, но это дополнение не вступает в силу в .xls-файле –

+0

Вы можете, но $ nbsp; чтобы добавить пробелы. Я попробовал, и это сработало. IDK, если есть способ сохранить форматирование с помощью 'file_put_contents'. –

ответ

-1

Вы должны создать CSV-файл, просто создайте новый php-файл с функцией, ожидающей результата выбора db.

затем только эхо колоды, разделенные; и возврат носителя для следующей строки.

это функция я сделал:

<?php 
function printcsv($result){ 
        //result of database select 
header('Content-Encoding: UTF-8'); 
header('Content-type: text/csv; charset=UTF-8'); 
header('Content-Disposition: attachment; filename=example.csv'); 
echo "\xEF\xBB\xBF"; 
$nl = "\n"; 
//this will be the carrier return var 
    if($rs = $result->fetch_array(MYSQLI_NUM)){ 
     while($rs != ''){ 
      echo $rs[0].";".$rs[1].";".$rs[2].";".$rs[3].";".$rs[4].";".$rs[5].";".$nl; 
      $rs = $result->fetch_array(MYSQLI_NUM); 
     } 
    } 
} 
?> 

изменить мой mysqli_fetch_array вашего желаемого результата выборки и попробовать =)

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

ура!

+0

Спасибо, Джоэл. Но в моем случае я должен экспортировать таблицу в файл Excel с расширением .xls. Я могу экспортировать его, но не могу использовать пробелы в тегах . –

+0

csv - файл excel, в любом случае, если вам нужно xls, используйте тот же заголовок заголовка контента, что и для приложения content-type application/xlsx. Я не знаю, принимает ли он значения, разделенные точкой с запятой, или если он использует другой разделитель, проверьте его, и вы получите его =) – JoelBonetR

+0

PD: я точно не знаю, как нужно разбираться, чтобы эхо-файл xls, но я уверен что вы не можете повторить таблицу и притвориться, что хотите сохранить ее в формате xls. если я не ошибаюсь, это формат на основе XML, поэтому вам нужно будет повторить эскструктуру csv. – JoelBonetR

Смежные вопросы