php - 格式化查询的 csv 输出

标签 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 添加公司 Logo 、更改字体大小、列宽,因为 CSV 是文本文件。因此我们不需要每次将此 csv 导入 excel 时都编辑 xls。

最佳答案

由于 csv 文件只不过是一个带有一些comma seperated v值的文本文件,因此您无法对其进行格式化。正如您已经指出的那样,您想在此处切换到 xls 文件 (Excel)。

你可以查看一些库,比如 PHPExcel ,这应该可以轻松创建和格式化 Excel 文件。

关于php - 格式化查询的 csv 输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47388054/

相关文章:

php - 在PHP中删除文本字符串的一部分

excel - 如果特定单元格的值发生变化,则仅清除单元格值发生变化的该行中的内容

excel - 如何移动公式中的引用单元格?

mysql - 通过odbc和excel调用mysql

php - 需要区分一个表的列和另一个表的其他列php

php - 如何通过比较PHP中的选项值将下拉值中的值插入数据库表?

PHP/Javascript - 引用引用为空

database - 对生成的列进行分组的案例查询

sql - 子查询不返回任何行

database - 从 sqlite 迁移到 postgresql