?
昂昂溪网站建设公司创新互联,昂昂溪网站设计制作,有大型网站制作公司丰富经验。已为昂昂溪上千多家提供企业网站建设服务。企业网站搭建\成都外贸网站制作要多少钱,请找那个售后服务好的昂昂溪做网站的公司定做!
$sheet_i = 2;//行
$sheet_j = 1;//列
for($currentRow = 2;$currentRow = $allRow;$currentRow++){
/**从第A列开始输出*/
for($currentColumn= 'A';$currentColumn= $allColumn; $currentColumn++){
$val = $currentSheet-getCellByColumnAndRow(ord($currentColumn) - 65,$currentRow)-getValue();/**ord()将字符转为十进制数*/
if($sheet_i = 2$sheet_j = 1)//自己算好输出第几行第几列
{
if($currentColumn == 'A')
{
echo GetData($val)."\t";
}else{
//echo $val;
/**如果输出汉字有乱码,则需将输出内容用iconv函数进行编码转换,如下将gb2312编码转为utf-8编码输出*/
echo iconv('utf-8','gb2312', $val)."\t";
}
}
$sheet_j ++;
}
$sheet_i++;
$sheet_j = 0;//重置列数
echo "/br";
}
echo "\n";
?
推荐用“PHPExcel”,下载地址“
”,以下是
压缩包
中的“文档目录”和“截图”![[i]
本帖最后由
cmttp
于
2008-6-27
03:22
编辑
[/i]]
$handle = fopen($_FILES[importfile][tmp_name],"r");
while($items = fgetcsv($handle,1000," ")){
var_dump($items);
}
这个是我读取EXCEL上传的文件用的,按行读取,但是你的Excel必须是二进制格式的自己琢磨一下吧,网上搜索很多的
PHPExcel
PHPExcel 是用来操作Office Excel 文档的一个PHP类库,它基于微软的OpenXML标准和PHP语言。可以使用它来读取、写入不同格式的电子表格,如 Excel (BIFF) .xls, Excel 2007 (OfficeOpenXML) .xlsx, CSV, Libre/OpenOffice Calc .ods, Gnumeric, PDF, HTML等等。
PHP读取示例代码
//获取上传的excel临时文件
$path = $_FILES["file"]["tmp_name"];
//将临时文件移动当前目录,可自定义存储位置
move_uploaded_file($_FILES["file"]["tmp_name"],$_FILES["file"]["name"]);
//将获取在服务器中的Excel文件,此处为上传文件名
$path = $_FILES["file"]["name"];
//调用readExcel函数返回一个
二维数组
$exceArray = readExcel($path);
//创建一个读取
excel函数
function readExcel($path){
//引入PHPExcel类库
include 'Classes/PHPExcel.php';
include 'Classes/PHPExcel/IOFactory.php';
$type = 'Excel5';//设置为Excel5代表支持2003或以下版本,
Excel2007代表2007版
$xlsReader = \PHPExcel_IOFactory::createReader($type);
$xlsReader-setReadDataOnly(true);
$xlsReader-setLoadSheetsOnly(true);
$Sheets = $xlsReader-load($path);
//开始读取上传到服务器中的Excel文件,返回一个
二维数组
$dataArray = $Sheets-getSheet(0)-
toArray();
return $dataArray;
}
?php
header("content-Type:
text/html;
charset=
utf8
");
error_reporting(0);
$
connection
=
mysql_connect('
localhost
',
'root',
'password');
// 连接数据库
mysql_select_db
('test');
//
选择数据库
mysql_query("SET
NAMES
'utf8'");
//
设置
字符集
//
连接EXCEL
$conn=new
com("adodb.connection",
NULL,
CP_UTF8);
$connstr="Driver={Microsoft
Excel
Driver
(*.xls)};DBQ=".realpath("excel.xls");
$conn-open($connstr);
$sql="select
*
from
[Sheet1$]";
//
查询EXCEL工作表
$rs=$conn-execute($sql);
while(!$rs-eof)
{
$id =
trim($rs-fields(id)-value);
//
将excel中Sheet1表中的id存到$id;
$name =
trim($rs-fields(name)-value);
//
将excel中Sheet1表中的name存到$name;
$sex
=
trim($rs-fields(sex)-value);
//
将excel中Sheet1表中的sex存到$sex;
// 生成SQL
INSERT语句
$sql
=
"INSERT
INTO
test(id,
name,
sex)
VALUES('$id',
'$name',
'$sex')";
//
插入数据库
mysql_query($sql);
$rs-movenext;
}
mysql_close
($connection);
?
php有个PHPExcel扩展,是可以实现你的要求的。
我这里有个可以读取多个工作薄的自定义excel类,试试看:
?php
/**
*excel.class.php
*/
class Excel
{
/**
* 从excel文件中取得所有数据。并转换成指定编码格式。
* $toCode 表示需要转换成的编码格式,目前扩充了utf8,gbk2312,html三种格式。
* @return 返回二维数组。
*/
static function getDataFromExl($filePath,$toCode = "utf8")
{
$fh = @fopen($filePath,'rb');
if( !$fh || filesize($filePath)==0 )
{
return -1; //文件不可读或者为空
}
$fc = fread( $fh, filesize($filePath) );
@fclose($fh);
if( strlen($fc) filesize($filePath) )
{
return -2; //读取错误
}
$exc = new ExcelFileParser();
$res = $exc-ParseFromString($fc);
$ws_number = count($exc-worksheet['name']);//取得工作薄数量
if( $ws_number 1 )
{
return -3;
}
for ($ws_n = 0; $ws_n $ws_number; $ws_n++)
{
$ws = $exc - worksheet['data'][$ws_n];
$data = $ws['cell'];
foreach($data as $k=$v) //一行数据
{
$row = null;
foreach($v as $a=$d) //一行数据的一个字节
{
$value = null;
if(count($d) == 1)
{
continue;
}
if($d['type'] == 0) //如果是字符类型则转换成为指定编码格式
{
$ind = $d['data'];
if( $exc-sst['unicode'][$ind] ) //返回数据编码格式
{
switch($toCode)
{
case "utf8":
$s = Strings::uc2utf8($exc-sst['data'][$ind]);
break;
case "gbk":
$s = Strings::uc2gbk($exc-sst['data'][$ind]);
break;
case "html":
$s = Strings::uc2html($exc-sst['data'][$ind]);
break;
default:
$s = Strings::uc2utf8($exc-sst['data'][$ind]);
break;
}
}
else
{
$s = $exc-sst['data'][$ind];
}
if( strlen(trim($s))==0 || $s === null )
{
$value = '';
}
else
{
$value = $s;
}
}
elseif($d['type'] == 3)
{
$time_list = explode('.', $d['data']);
$time_format = $time_list[2].'-'.$time_list[0].'-'.$time_list[1];
$timestamp = strtotime($time_format);
$value = date("Y-m-d H:i:s", $timestamp);
}
else
{
$value = $d['data'];
}
$row[$a] = $value;
}
$recordList[] = $row;
}
}
return $recordList;
}
}
require_once('./excel.class.php');
$emailData = Excel::getDataFromExl($_FILES['file_name']['tmp_name']);