格式化查询的csv输出

时间:2017-11-20 08:47:36

标签: php excel postgresql 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。

2 个答案:

答案 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?