怎么使用php把表格中的数据导入到excel中
下面是我写的一个PHP导出数据到CSV问价的函数,你到时候直接调用就行了
/**
* 导出CSV文件
* @param string $fileName文件名字
* @param string|array $data 导出数据,csv格式的字符串|数值数组
* @param string $to_encoding 目标转换编码
* @param string $from_encoding 当前编码
*/
function exportCSV($fileName = '', $data = '', $to_encoding = 'gb2312', $from_encoding = 'utf-8') {
$fileName = empty($fileName) ? date('YmdHis') : $fileName;
// 文件标签
Header("Content-type: application/octet-stream");
header("Content-type: application/vnd.ms-excel; charset=$from_encoding");
Header("Content-Disposition: attachment; filename=$fileName.csv");
$str = '';
if($data) {
if(is_array($data)) {
foreach ($data as $v) {
if(is_array($v)) {
foreach ($v as $vo) {
$str .= (is_numeric($vo) ? "'".$vo : $vo."").",";
}
$str = trim($str, ",")."\r\n";
} else {
$str .= (is_numeric($v) ? "'".$v : $v).",";
}
}
$str = trim($str, ",")."\r\n";
} else {
$str = $data;
}
}
echo mb_convert_encoding($str, "gb2312", "utf-8");
exit;
}
php导入excel 怎么获取excel表格数据
常用的用PHP读取EXCEL的方法有以下三种,各自有各自的优缺点。个人推荐用第三种方法,因为它可以跨平台使用。
1. 以.csv格式读取
将.xls转换成.csv的文本格式,然后再用PHP分析这个文件,和PHP分析文本没有什么区别。
优点:跨平台,效率比较高、可以读写。
缺点:只能直接使用.csv的文件,如果经常接受.xls二进制文件的话需要手工转换,不能自动化。一个文件只有一个SHEET。
PHP有自带的分析.csv函数:fgetcsv
array fgetcsv ( int $handle [, int $length [, string $delimiter [, string $enclosure]]] )
handle 一个由 fopen()、popen() 或 fsockopen() 产生的有效文件指针。
length (可选)必须大于 CVS 文件内最长的一行。在 PHP 5 中该参数是可选的。如果忽略(在 PHP 5.0.4 以后的版本中设为 0)该参数的话,那么长度就没有限制,不过可能会影响执行效率。
delimiter (可选)设置字段分界符(只允许一个字符),默认值为逗号。
enclosure (可选)设置字段环绕符(只允许一个字符),默认值为双引号。该参数是在 PHP 4.3.0 中添加的。 和 fgets() 类似,只除了 fgetcsv() 解析读入的行并找出 CSV 格式的字段然后返回一个包含这些字段的数组。
fgetcsv() 出错时返回 FALSE,包括碰到文件结束时。
注意: CSV 文件中的空行将被返回为一个包含有单个 null 字段的数组,不会被当成错误。
当然也可以自己手动分析字符串。
还可以利用fputcsv函数将行格式化为 CSV 并写入文件指针。
2. ODBC链接数据源
优点:支持多种格式,cvs, xls等。支持读写,使用标准SQL语言,和SQLSERVER、MYSQL数据库几乎完全一样。
缺点:值支持windows服务器
3. PHP自定义类
优点:跨平台。某些类支持写操作。支持.xls二进制文件
常用的类有phpExcelReader、PHPExcel。其中后者支持读写,但是需要php5.2以上版本。
phpExcelReader是专门用来读取文件的。返回一个数组,包含表格的所有内容。
该 class 使用的方法可以参考网站下载回来的压缩档中的 example.php。
不过我下载回来的 (版本 2009-03-30),有两点要注意:
reader.php 中的下面这行要修改
将 require_once ‘Spreadsheet/Excel/Reader/OLERead.php’;
改为 require_once ‘oleread.inc’;
example.php 中
修改 $data->setOutputEncoding(’CP1251′);
为 $data->setOutputEncoding(’CP936′);
example2.php 中
修改 nl2br(htmlentities($data->sheets[$sheet]['
导入excel文件,后端php处理导入的数据并存入数据...
我以前给客户录入用户时也涉及过excel数据导入的问题,当时,我是把excel另存为csv文件,然后再用php读取csv文件
php怎么导入Excel表格到数据库,根据表格内的字段...
/**
* @param array $data //二维数组 不是对象
* @param string $filename //导出文件名
*/
public static function Export($data = array(), $filename = 'report') {
ob_get_contents();
ob_end_clean();//会清除缓冲区的内容,并将缓冲区关闭,但不会输出内容。此函数丢弃最顶层输出缓冲区的内容并关闭这个缓冲区。如果想要进一步处理缓冲区的内容,必须在ob_end_clean()之前调用ob_get_contents(),因为当调用ob_end_clean()时缓冲区内容将被丢弃。
ob_start();
header ( "Content-type:application/octet-stream" );
header ( "Accept-Ranges:bytes" );
header ( "Content-type:application/vnd.ms-excel" );
header ( "Content-Disposition:attachment;filename=" . $filename . ".xls" );
header ( "Pragma: no-cache" );
header ( "Expires: 0" );
if (! empty ( $data )) {
foreach ( $data as $key => $val ) {
foreach ( $val as $ck => $cv ) {
$data [$key] [$ck] = iconv ( "UTF-8", "GB2312", $cv );
}
$data [$key] = implode ( "\t", $data [$key] );
}
echo implode ( "\n", $data );
}
}
PHP网页怎么导入Excel的数据
常用的用PHP读取EXCEL的方法有以下三种,各自有各自的优缺点。个人推荐用第三种方法,因为它可以跨平台使用。
1. 以.csv格式读取
将.xls转换成.csv的文本格式,然后再用PHP分析这个文件,和PHP分析文本没有什么区别。
优点:跨平台,效率比较高、可以读写。
缺点:只能直接使用.csv的文件,如果经常接受.xls二进制文件的话需要手工转换,不能自动化。一个文件只有一个SHEET。
PHP有自带的分析.csv函数:fgetcsv
array fgetcsv ( int $handle [, int $length [, string $delimiter [, string $enclosure]]] )
handle 一个由 fopen()、popen() 或 fsockopen() 产生的有效文件指针。
length (可选)必须大于 CVS 文件内最长的一行。在 PHP 5 中该参数是可选的。如果忽略(在 PHP 5.0.4 以后的版本中设为 0)该参数的话,那么长度就没有限制,不过可能会影响执行效率。
delimiter (可选)设置字段分界符(只允许一个字符),默认值为逗号。
enclosure (可选)设置字段环绕符(只允许一个字符),默认值为双引号。该参数是在 PHP 4.3.0 中添加的。 和 fgets() 类似,只除了 fgetcsv() 解析读入的行并找出 CSV 格式的字段然后返回一个包含这些字段的数组。
fgetcsv() 出错时返回 FALSE,包括碰到文件结束时。
注意: CSV 文件中的空行将被返回为一个包含有单个 null 字段的数组,不会被当成错误。
当然也可以自己手动分析字符串。
还可以利用fputcsv函数将行格式化为 CSV 并写入文件指针。
2. ODBC链接数据源
优点:支持多种格式,cvs, xls等。支持读写,使用标准SQL语言,和SQLSERVER、MYSQL数据库几乎完全一样。
缺点:值支持windows服务器
3. PHP自定义类
优点:跨平台。某些类支持写操作。支持.xls二进制文件
常用的类有phpExcelReader、PHPExcel。其中后者支持读写,但是需要php5.2以上版本。
phpExcelReader是专门用来读取文件的。返回一个数组,包含表格的所有内容。
该 class 使用的方法可以参考网站下载回来的压缩档中的 example.php。
不过我下载回来的 (版本 2009-03-30),有两点要注意:
reader.php 中的下面这行要修改
将 require_once ‘Spreadsheet/Excel/Reader/OLERead.php’;
改为 require_once ‘oleread.inc’;
example.php 中
修改 $data->setOutputEncoding(’CP1251′);
为 $data->setOutputEncoding(’CP936′);
example2.php 中
修改 nl2br(htmlentities($data->sheets[$sheet]['