The reason why php is imported into excel with garbled characters is because utf8 encoding does not support all utf8 encoding in the 🎜>
Copy code
The code is as follows:
header("Content-Type: application/vnd.ms-excel; charset=UTF -8"); header("Pragma: public"); header("Expires: 0"); header("Cache-Control: must-revalidate, post-check=0, pre -check=0");
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content -Type: application/download");
header("Content-Disposition: attachment;filename=11.xls ");
header("Content-Transfer-Encoding: binary ");
?> ;
Php code
Copy code
The code is as follows:
$filename="php import to excel-utf-8 encoding"; $filename=iconv("utf-8", "gb2312", $filename); echo $filename; ?>
gbk encoding case
Php code
Copy code
The code is as follows:header("Content-Type: application/vnd.ms-excel; charset=UTF-8"); header("Pragma: public"); header("Expires: 0"); header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-Type: application/force -download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");
header("Content-Disposition: attachment ;filename=11.xls ");
header("Content-Transfer-Encoding: binary ");
?>
Php code
Copy code
The code is as follows:
0. 0.$filename="php import to excel-utf-8 encoding"; 0.echo $filename; 0.?>
Download it into excel when you visit the website
If you want to distinguish between cells
Use a table to do it Just use the webpage
====================== Other methods ==================== ===========
1. Create simple Excel
Copy the code
The code is as follows:
0.0.header("Content-type:application/vnd.ms-excel"); 0.header("Content-Disposition:filename=php2excel .xls"); 0. 0.echo "A1/t B1/t C1/n";
0.echo "A2/t B2/t C2/n";
0 .echo "A3/t B3/t C3/n";
0.echo "A4/t B4/t C4/n";
0.?>
2. Create a simple CSV
Copy the code
The code is as follows:
$ action =$_GET['action'];if ($action=='make'){ $fp = fopen("demo_csv.csv","a"); //Open the csv file, if If it does not exist, create it $title = array("First_Name","Last_Name","Contact_Email","Telephone"); //First row of data
$data_1 = array("42343","423432" ,"4234","4234");
$data_2 = array("4234","Last_Name","Contact_Email","Telephone");
$title = implode(",",$title) ; //Use ' to split into strings
$data_1 = implode(",",$data_1); // Use ' to split into strings
$data_2 = implode(",",$data_2); / / Split into strings with '
$data_str =$title."/r/n".$data_1."/r/n".$data_2."/r/n"; //Add newline character
fwrite($fp,$data_str); //Write data
fclose($fp); //Close file handle
echo "Generation successful";
}
echo "
echo "
Generate csv file";
?>
You can also make one Closed function:
Closed function one:
Copy code
The code is as follows:
function exportToCsv($csv_data, $filename = 'export.csv') {
$csv_terminated = "/n";
$csv_separator = ",";
$csv_enclosed = '"';
$csv_escaped = "//";
// Gets the data from the database
$schema_insert = '';
$out = '';
// Format the data
foreach ($csv_data as $row)
{
$schema_insert = '';
$fields_cnt = count($row);
//printr($row);
$tmp_str = '';
foreach($row as $v)
{
$tmp_str .= $csv_enclosed.str_replace($csv_enclosed, $csv_escaped . $csv_enclosed, $v).$csv_enclosed.$csv_separator;
} // end for
$tmp_str = substr($tmp_str, 0, -1);
$schema_insert .= $tmp_str;
$out .= $schema_insert;
$out .= $csv_terminated;
} // end while
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-Length: " . strlen($out));
header("Content-type: text/x-csv");
header("Content-Disposition:filename=$filename");
echo $out;
}
/*
$csv_data = array(array('Name', 'Address'));
array_push($csv_data, array($row['name'],$row['address']));
...
exportToCsv($csv_data,'new_file.csv');
*/
封闭函数二:
复制代码 代码如下:
/**
* Simple class to properly output CSV data to clients. PHP 5 has a built
* in method to do the same for writing to files (fputcsv()), but many times
* going right to the client is beneficial.
*
* @author Jon Gales
*/
class CSV_Writer {
public $data = array();
public $deliminator;
/**
* Loads data and optionally a deliminator. Data is assumed to be an array
* of associative arrays.
*
* @param array $data
* @param string $deliminator
*/
function __construct($data, $deliminator = ",")
{
if (!is_array($data))
{
throw new Exception('CSV_Writer only accepts data as arrays');
}
$this->data = $data;
$this->deliminator = $deliminator;
}
private function wrap_with_quotes($data)
{
$data = preg_replace('/"(.+)"/', '""$1""', $data);
return sprintf('"%s"', $data);
}
/**
* Echos the escaped CSV file with chosen delimeter
*
* @return void
*/
public function output()
{
foreach ($this->data as $row)
{
$quoted_data = array_map(array('CSV_Writer', 'wrap_with_quotes'), $row);
echo sprintf("%s/n", implode($this->deliminator, $quoted_data));
}
}
/**
* Sets proper Content-Type header and attachment for the CSV outpu
*
* @param string $name
* @return void
*/
public function headers($name)
{
header('Content-Type: application/csv');
header("Content-disposition: attachment; filename={$name}.csv");
}
}
/*
//$data = array(array("one","two","three"), array(4,5,6));
$data[] = array("one","two","three");
$data[] = array(4,5,6);
$csv = new CSV_Writer($data);
$csv->headers('test');
$csv->output();
*/
3. 使用excel类
复制代码 代码如下:
require_once 'Spreadsheet/Writer.php';
$workbook = new Spreadsheet_Excel_Writer();
/* Generate CSV
$filename = date('YmdHis ').'.csv';
$workbook->send($filename); // Send Excel file name for download
*/
// Generate Excel
$filename = date( 'YmdHis').'.xls';
$workbook->send($filename); // Send Excel file name for download
$workbook->setVersion(8);
$workbook ->setBIFF8InputEncoding('UTF-8');
$worksheet =& $workbook->addWorksheet("Sheet-1");
$data[]= array('id','username' ,'company','email','mob','daytime','intent');
$data[] = array(1,'Laoliang','**Studio','jb51.net ','1363137966*',time(),'y');
$total_row = count($data);
$total_col = count($data[0]);
for ($row = 0; $row < $total_row; $row ++) {
for ($col = 0; $col < $total_col; $col ++) {
$worksheet->writeString($ row, $col, $data[$row][$col]); // Write data in sheet-1
}
}
/*
$worksheet =& $workbook- >addWorksheet("Sheet-2");
$data[]= array('id','username','company','email','mob','daytime','intent');
$data[] = array(1,'Laoliang','**Studio','jb51.net','1363137966*',time(),'y');
$total_row = count($data);
$total_col = count($data[0]);
for ($row = 0; $row < $total_row; $row ++) {
for ($ col = 0; $col < $total_col; $col ++) {
$worksheet->writeString($row, $col, $data[$row][$col]); // in sheet- 2 Write data in
}
}
*/
$workbook->close(); // Complete download
?>
Category 2
-----Function description
Read Excel file
function Read_Excel_File($ExcelFile,$Result)
$ExcelFile Excel file name
$Result Return The result
Function return value Normally returns 0, otherwise an error message is returned
The returned value array
The value of $result[sheet name][row][column] is the value of the corresponding Excel Cell
Create Excel file
function Create_Excel_File($ExcelFile,$Data)
$ExcelFile Excel file name
$Data Excel table data
Please write the function in the PHP script Beginning
Example 1:
Copy code The code is as follows:
require "excel_class.php ";
Read_Excel_File("Book1.xls",$return);
for ($i=0;$i{
for ($j=0;$j {
echo $return[Sheet1][$i][$j]."|" ;
}
echo "
";
}
?>
Example 2:
Copy the code The code is as follows:
require "excel_class.php";
Read_Excel_File("Book1.xls",$return);
Create_Excel_File("ddd.xls",$return[Sheet1]);
?>
http://www.bkjia.com/PHPjc/327836.htmlwww.bkjia.comtruehttp: //www.bkjia.com/PHPjc/327836.htmlTechArticleThe garbled code imported from php to excel is because utf8 encoding does not support all utf8 encoding in the xp system. It can be solved perfectly by transcoding. UTF-8 encoding case Php code copy code is as follows: ?php header("Cont...