我目前正在使用PHP中的League\Csv库从应用程序中的数据生成CSV文件。我想在生成的CSV文件的标题中添加样式(如粗体或文本颜色),使其在Microsoft Excel等电子表格应用程序中打开时脱颖而出。
目前,我使用以下PHP代码来生成CSV文件:
public function export_data_as_csv() {
$projectFeature = new ProjectSingle();
$role_label = $projectFeature->role_label;
$estimations = $projectFeature->getEstimations($_POST['project_id']);
// Instantiate a CSV object
$csv = Writer::createFromString('');
// Header CSV
$header = [
'Name',
'Est. Hours',
'Estimator',
'Assigned',
'Note',
'Problem'
];
$csv->insertOne($header);
$total_estimation = 0;
foreach ($estimations as $division => $estimation) {
if (!empty($estimation)) {
// Grup parent
$parent_data = [
$role_label[$division],
$estimation['post_estimation'],
$estimation['estimator'],
'', // Assigned
'', // Note
'', // Problem
];
$csv->insertOne($parent_data);
foreach ($estimation['timeline'] as $task_name => $timeline) {
// Grup konten
$content_data = [
$task_name,
$timeline['est_hours'],
'', // Estimator
$timeline['est_assigned'],
$timeline['est_notes'],
$timeline['problems_url'],
];
$csv->insertOne($content_data);
}
$total_estimation += $estimation['post_estimation'];
}
}
$total = ['TOTAL', $total_estimation, '', '', '', ''];
$csv->insertOne($total);
$file_name = $_POST['project_name'] . '-estimation.csv';
// $csv->output($file_name);
$csvData = $csv->toString(); // Get CSV data as a string
header('Content-Type: text/csv');
header('Content-Disposition: attachment; filename="' . $file_name . '"');
echo $csvData;
$_POST = [];
exit();
}
但是,标题显示为纯文本,没有任何特殊样式。如何在生成的CSV文件中添加样式?
我尝试过的:
- 我已经查看了League\Csv库的文档,但找不到关于向标题添加样式的信息。
- 我尝试在标题中使用和等HTML标记,但在Excel中打开时无法正常工作。
我所期望的:
- 我希望有一种方法可以使用League\Csv库或其他方法将样式或格式应用于CSV文件中的头。我的目标是在Excel中打开CSV文件时,使标题文本显示为粗体。
1条答案
按热度按时间3htmauhk1#
CSV不支持任何类型的样式。如果您需要样式,请使用.xlsx,.ods或其他支持的格式。