php导入到excel乱码是因为utf编码在xp系统不支持所有utf编码转码一下就完美解决了
utf编码案例
Php代码
复制代码 代码如下:
<?php
header("Content
Type: application/vnd
ms
excel; charset=UTF
");
header("Pragma: public");
header("Expires:
");
header("Cache
Control: must
revalidate
post
check=
pre
check=
");
header("Content
Type: application/force
download");
header("Content
Type: application/octet
stream");
header("Content
Type: application/download");
header("Content
Disposition: attachment;filename=
xls ");
header("Content
Transfer
Encoding: binary ");
?>
Php代码
复制代码 代码如下:
<?
$filename="php导入到excel
utf
编码";
$filename=iconv("utf
"
"gb
"
$filename);
echo $filename;
?>
gbk编码案例
Php代码
复制代码 代码如下:
<?php
header("Content
Type: application/vnd
ms
excel; charset=UTF
");
header("Pragma: public");
header("Expires:
");
header("Cache
Control: must
revalidate
post
check=
pre
check=
");
header("Content
Type: application/force
download");
header("Content
Type: application/octet
stream");
header("Content
Type: application/download");
header("Content
Disposition: attachment;filename=
xls ");
header("Content
Transfer
Encoding: binary ");
?>
Php代码
复制代码 代码如下:
<?
$filename="php导入到excel
utf
编码";
echo $filename;
?>
访问网站的时候就下载到excel里面
要弄单元格区别的话
用table表格做网页的就可以了
====================== 其他方法 =============================
制作简单 Excel
复制代码 代码如下:
<?php
header("Content
type:application/vnd
ms
excel");
header("Content
Disposition:filename=php
excel
xls");
echo "A
/t B
/t C
/n";
echo "A
/t B
/t C
/n";
echo "A
/t B
/t C
/n";
echo "A
/t B
/t C
/n";
?>
制作简单 CSV
复制代码 代码如下:
<?php
$action =$_GET[
action
];
if ($action==
make
){
$fp = fopen("demo_csv
csv"
"a"); //打开csv文件
如果不存在则创建
$title = array("First_Name"
"Last_Name"
"Contact_Email"
"Telephone"); //第一行数据
$data_
= array("
"
"
"
"
"
"
");
$data_
= array("
"
"Last_Name"
"Contact_Email"
"Telephone");
$title = implode("
"
$title); //用
分割成字符串
$data_
= implode("
"
$data_
); // 用
分割成字符串
$data_
= implode("
"
$data_
); // 用
分割成字符串
$data_str =$title
"/r/n"
$data_
"/r/n"
$data_
"/r/n"; //加入换行符
fwrite($fp
$data_str); // 写入数据
fclose($fp); //关闭文件句柄
echo "生成成功";
}
echo "<br>";
echo "<a >生成csv文件</a>";
?>
也可以做一个封闭函数
封闭函数一
复制代码 代码如下:
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
);
$schema_insert
= $tmp_str;
$out
= $schema_insert;
$out
= $csv_terminated;
} // end while
header("Cache
Control: must
revalidate
post
check=
pre
check=
");
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
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(
/"(
+)"/
""$
""
$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(
));
$data[] = array("one"
"two"
"three");
$data[] = array(
);
$csv = new CSV_Writer($data);
$csv
>headers(
test
);
$csv
>output();
*/
使用excel类
复制代码 代码如下:
<?php
require_once
Spreadsheet/Writer
php
;
$workbook = new Spreadsheet_Excel_Writer();
/* 生成 CSV
$filename = date(
YmdHis
)
csv
;
$workbook
>send($filename); // 发送 Excel 文件名供下载
*/
// 生成 Excel
$filename = date(
YmdHis
)
xls
;
$workbook
>send($filename); // 发送 Excel 文件名供下载
$workbook
>setVersion(
);
$workbook
>setBIFF
InputEncoding(
UTF
);
$worksheet =& $workbook
>addWorksheet("Sheet
");
$data[]= array(
id
username
company
email
mob
daytime
intent
);
$data[] = array(
老梁
**工作室
jb
net
*
time()
y
);
$total_row = count($data);
$total_col = count($data[
]);
for ($row =
; $row < $total_row; $row ++) {
for ($col =
; $col < $total_col; $col ++) {
$worksheet
>writeString($row
$col
$data[$row][$col]); // 在 sheet
中写入数据
}
}
/*
$worksheet =& $workbook
>addWorksheet("Sheet
");
$data[]= array(
id
username
company
email
mob
daytime
intent
);
$data[] = array(
老梁
**工作室
jb
net
*
time()
y
);
$total_row = count($data);
$total_col = count($data[
]);
for ($row =
; $row < $total_row; $row ++) {
for ($col =
; $col < $total_col; $col ++) {
$worksheet
>writeString($row
$col
$data[$row][$col]); // 在 sheet
中写入数据
}
}
*/
$workbook
>close(); // 完成下载
?>
类二
函数说明
读取Excel文件
function Read_Excel_File($ExcelFile$Result)
$ExcelFile Excel文件名
$Result 返回的结果
函数返回值 正常返回否则返回错误信息
返回的值数组
$result[sheet名][行][列] 的值为相应Excel Cell的值
建立Excel文件
function Create_Excel_File($ExcelFile$Data)
$ExcelFile Excel文件名
$Data Excel表格数据
请把函数写在PHP脚本的开头
例
复制代码 代码如下:
<?
require "excel_class
php";
Read_Excel_File("Book
xls"
$return);
for ($i=
;$i<count($return[Sheet
]);$i++)
{
for ($j=
;$j<count($return[Sheet
][$i]);$j++)
{
echo $return[Sheet
][$i][$j]
"|";
}
echo "<br>";
}
?>
例
复制代码 代码如下:
<?
require "excel_class
php";
Read_Excel_File("Book
xls"
$return);
Create_Excel_File("ddd
xls"
$return[Sheet
]);
?>