Экспорт в Excel или CSV

Я работаю на веб-сайте, где мне нужно сделать файл Excel или, по крайней мере, файл CSV, который открывается в Excel.
Я много чего перепробовал. Я искал решения в google, stackoverflow и т. Д. Но все, что я нашел, похоже, не работает для меня. Я пробовал решения jQuery и PHP.

JSFiddle: http://jsfiddle.net/terryyounghk/KPEGU/

Когда я использую эту скрипку для создания CSV, вывод:

Пример вывода CSV

Я хочу, чтобы вывод был в отдельных столбцах, а не в одном.

Вот также PHP-решение, которое я пробовал:

    header("Content-type: application/vnd.ms-excel");
header("Content-Disposition: attachment;Filename=document_name.xls");

echo "<html>";
echo "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=Windows-1252\">";
echo "<body>";
echo "<table>";
echo "<tr>";
echo "<td>Henk</td>";
echo "<td>Henk2</td>";
echo "</tr>";
echo "<tr>";
echo "<td>bob</td>";
echo "<td>bob2</td>";
echo "</tr>";
echo "</table>";
echo "</body>";
echo "</html>";

Это выводит:

пример вывода php

Здесь вывод находится в правильных столбцах и строках. Но почему-то я не могу получить линии сетки.

Это всего лишь 2 примера тонн, которые я попробовал. Кто-нибудь знает, как это исправить?

2

Решение

в JsFiddle пример, который вы привели — изменить colDelim = '","' в colDelim = '";"' так как ему нужно значение через запятую ; чтобы струна упала в разные клетки.

Обновленный JsFiddle

1

Другие решения

Я вижу, как вы думаете об использовании таблиц для форматирования, но CSV разделяются запятыми.

Лучший способ, который я нашел, — использовать массивы примерно так:

// setup array. Note null values to create empty cells
$list = array(
array('First row', NULL, 'some_data', NULL),
array('Second row', 'some data', NULL, 'some data'),
);

// set header types
header("Content-type: text/csv");
header("Cache-Control: no-store, no-cache");
header('Content-Disposition: attachment; filename="most_popular-'.$_POST['start_date'].'-'.$_POST['end_date'].'.csv"');

// tell php to open the page as an output (download)
$outstream = fopen("php://output",'w');

// loop through and put each array row into the csv, comma seperated.
foreach( $list as $row )
{
fputcsv($outstream, $row, ',');
}

exit;

Просто помните, что каждая строка в массиве нуждается в том же самом, что и другие, иначе цикл создания csv будет очень запутанным.

0

**Try this**<?php
error_reporting(E_ERROR);
include("dbConnect.inc.php");
//$ip = $_SERVER['HTTP_CLIENT_IP
$select_table=mysql_query("SELECT * FROM `key_cat`");
$setExcelName="Keyword_reports";
header('Content-Type: text/csv');
header('Content-Disposition: attachment;filename='.$setExcelName.'.csv');
/*
$setExcelName="Keywords";
header("Content-type: application/octet-stream");
header("Content-Disposition: attachment; filename=".$setExcelName."_Reoprt.xls");
header("Pragma: no-cache");
header("Expires: 0");
*/
$rows = mysql_fetch_assoc($select_table);
if($rows)
{
getcsv(array_keys($rows));
}
while($rows)
{
getcsv($rows);
$rows = mysql_fetch_assoc($select_table);
}
// get total number of fields present in the database
function getcsv($no_of_field_names)
{
$separate = '';
// do the action for all field names as field name
foreach ($no_of_field_names as $field_name)
{
if (preg_match('/\\r|\\n|,|"/', $field_name))
{
$field_name = '' . str_replace('', $field_name) . '';
}
echo $separate . $field_name;

//sepearte with the comma
$separate = ',';
}

//make new row and line
echo "\r\n";

}?>
0
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector