При попытке сгенерировать CSV я хотел отделить данные в нескольких столбцах, однако я вижу только данные в A1, A2, A3 Столбцы не в б или C.fputcsv более одного столбца (котировки)
Любой путь, как чтобы исправить это?
Я хочу имя X, возраст X и город X в трех раздельных колонках
Это пример кода:
header("Content-Type: text/csv");
header("Content-Disposition: attachment; filename=file.csv");
// Disable caching
header("Cache-Control: no-cache, no-store, must-revalidate"); // HTTP 1.1
header("Pragma: no-cache"); // HTTP 1.0
header("Expires: 0"); // Proxies
function outputCSV($data) {
$output = fopen($_SERVER['DOCUMENT_ROOT']."/Project_X/trunk/output/test.csv", 'w');
foreach ($data as $row) {
fputcsv($output, $row); // here you can change delimiter/enclosure
}
fclose($output);
}
outputCSV(array(
array("name 1", "age 1", "city 1"),
array("name 2", "age 2", "city 2"),
array("name 3", "age 3", "city 3")
));
Edit: Функция тестирования:
$output = fopen($_SERVER['DOCUMENT_ROOT']."/Project_X/trunk/output/test.csv", 'w');
fputcsv($output, array("hallo;123;4"),";"); // here you can change delimiter/enclosure
fclose($output);
Результаты в виде файла : «hallo; 123; 4» вместо hallo; 123; 4
Решено:
$array = array("hallo;123;4");
$array = str_replace('"', '', $array);
fputcsv($output, $array);
Как вы смотрите на сгенерированный файл? Вы понимаете, что MS Excel использует локальный специфический разделитель при чтении файла csv, поэтому иногда вам может понадобиться использовать ';', somethimes a ',', в зависимости от настроек локали версии MS Excel, которые используются для просмотра файл, который вы производите –
Одним из решений этого является «рассказать» MS Excel о том, какой разделитель используется; сделать первую строку файла 'sep =,' .... но это будет нехорошо, если файл используется в другом месте по сценариям импортера. –
Спасибо за комментарии. на языковых настройках, однако его запись «test; 1; 2; 3» вместо теста; 1; 2; 3 (без кавычек)? Я повторно отредактировал сообщение и добавил тестовую функцию. – David