我设法将我的查询结果导出到可下载的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("&", "<", ">", """, "'" , '');
$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。
答案 0 :(得分:2)
由于csv文件只是一个文本文件,其中包含 c omma s 已启用的 v ,因此您无法格式化它。正如你所指出的那样,你想在这里切换到xls文件(Excel)。
您可以查看一些库,例如PHPExcel,这样可以轻松创建和格式化Excel文件。
答案 1 :(得分:0)
首先,您需要将CSV转换为xls。本文可能对您有所帮助: csv to excel conversion
然后你可以编辑xls的样式: How to format excel file with styles, fonts, colors, tables etc with pure PHP?