格式化查询的csv输出

我设法将我的查询结果导出到可下载的csv,但我可以格式化这个csv输出? 例如不同的字体大小,列宽。 或者我可以把它变成xls文件? 也需要格式化它的帮助。

$connect = pg_connect($link); $random = $_POST['random']; $query = "SELECT nivelacija.broj_nivelacije, nivelacija.vezni_dokument, roba.sifra, roba.naziv, nivelacija_stavka.kolicina, nivelacija_stavka.pdv, nivelacija.datum_nivelacije, nivelacija_stavka.stara, nivelacija_stavka.nova, nivelacija_stavka.marza, nivelacija_stavka.nova - nivelacija_stavka.stara as razlika , nivelacija_stavka.kolicina * (nivelacija_stavka.nova - nivelacija_stavka.stara) as zaduzenje from (select * from nivelacija where datum_nivelacije='$random') nivelacija LEFT JOIN nivelacija_stavka ON nivelacija.nivelacija_id = nivelacija_stavka.nivelacija_id LEFT JOIN roba on nivelacija_stavka.roba_id = roba.roba_id ORDER BY nivelacija.nivelacija_id DESC;"; $resultID = pg_query($connect, $query) or die("Greska1. "); $num_column = pg_num_fields($resultID); $csv_header = ''; for($i=0;$i<$num_column;$i++) { $csv_header .= "" . pg_field_name($resultID,$i) . "*"; } $csv_header .= "\n"; $csv_row =''; while($row = pg_fetch_row($resultID)) { for($i=0;$i<$num_column;$i++) { $csv_row .= "" . $row[$i] . "*"; } $csv_row .= "\n"; } function stripInvalidXml($OriginalString) { $NekiKarakteriZaZamenu = array("&", "<", ">", "\"", "'" ,'"'); $KarakteriKojiMenjaju = array("&amp;", "&lt;", "&gt;", "&quot;", "&apos;" , ''); $ZamenjenString = str_replace($NekiKarakteriZaZamenu, $KarakteriKojiMenjaju, $OriginalString); return $ZamenjenString; } /* Download as CSV File */ header('Content-type: application/csv'); header('Content-Disposition: attachment; filename=nivelacija.csv'); echo $csv_header . $csv_row; exit; ?> 

这个工程,但我只是想要一种格式化到XLS的方式,所以我可以添加公司的标志,更改字体大小,通过PHP的列宽,因为CSV是文本文件。 所以我们不需要每次我们导入这个csv到excel编辑xls。

由于一个csv文件只不过是一个文本文件,而且有一些c omv 操作文件,所以你不能格式化它。 正如你所指出的,你已经想在这里切换到一个xls文件(Excel)。

您可以查看一些库,如PHPExcel ,这应该可以很容易地创build和格式化Excel文件。

首先你需要把你的CSV转换成xls。 本文可能会帮助您: csv excel转换

然后你可以编辑你的xls的样式: 如何用纯PHP格式化excel文件的样式,字体,颜色,表格等?