php讀取excel文件
告訴你一個思路,
簡單歸納如下三個部分即可實現 .
////存儲的部分
<?
if($_FILE[文件名])
{
$destFilename=指定目錄/文件名;
($_FILE[文件名],$destFilename);
}
?>
<?
//php讀出部分,
這里可以有多個.如果是圖片文件的,可以直接使用HTML的<IMG src=相對URI圖片路徑>標記
//如果是其它如WORD/EXCEL/PDF這類的.你就要用一個<IFRAME src=文件 高/寬設定>
?>
//////////上傳的部分
<form method="POST" >
<input type=file name=文件變數>
<input type=submit>
</form>
2. php讀取excel,excel下多個個工作表,該怎麼讀取
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']);
3. 高手幫我解決下PHP讀取Excel文件亂碼的問題
不能使用readfile顯示XLS文件,這樣肯定是亂碼。
PHP中顯示EXCEL需要使用一些插件,或者使用COM打開EXCEL進程。更簡單的辦法是在EXCEL裡面另存為,選擇網頁格式,這樣的文件可以直接在網頁顯示。
4. php讀取excel文件時浮點數字被讀錯,我這個是把「-16807.95」讀取成了「10720610.29」
1、你把這個數據手動輸入一遍,注意輸入法,再保存,然後測試;
2、輸入-16807,測試;
3、輸入-2143.40,測試;
幾個測試下來,應該可以找到答案
5. php怎麼讀取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函數
functionreadExcel($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;
}
6. php 怎樣讀取excel電子表格 - 技術問答
phpchina的貼子里有一篇是關於excel的操作的...還有可以使用COM連接
7. php讀取excel文件示例分享(更新修改excel)
復制代碼
代碼如下:
//模板存放目錄
$dir
=
$DOCUMENT_ROOT.'/backoffice/admin/oemcheck/';
$templateName
=
'1.xlsx';
$outputFileName
=
'模板.xlsx';
$txt='test';
//實例化Excel讀取類
$PHPReader
=
new
PHPExcel_Reader_Excel2007();
if(!$PHPReader->canRead($dir.$templateName)){
$PHPReader
=
new
PHPExcel_Reader_Excel5();
if(!$PHPReader->canRead($dir.$templateName)){
echo
'無法識別的Excel文件!';
return
false;
}
}
//讀取Excel
$PHPExcel
=
$PHPReader->load($dir.$templateName);
//讀取工作表1
$currentSheet
=
$PHPExcel->getSheet(0);
$currentSheet->setCellValue('B13',iconv('gbk','utf-8',$txt));//表頭賦值//
//實例化Excel寫入類
$PHPWriter
=
new
PHPExcel_Writer_Excel2007($PHPExcel);
ob_start();
header("Content-Type:
application/force-download");
header("Content-Type:
application/octet-stream");
header("Content-Type:
application/download");
header('Content-Disposition:attachment;filename="'
.$outputFileName.
'"');//輸出模板名稱
header("Content-Transfer-Encoding:
binary");
header("Last-Modified:".gmdate("D,
d
M
Y
H:i:s")."
GMT");
header('Pragma:
public');
header('Expires:
30');
header('Cache-Control:
public');
$PHPWriter->save('php://output');
8. PHP遠程讀取excel文件,怎麼讀取
PHPExcel 通過 PHPExcel_Shared_OLERead 類的 read 方法讀取文件
但 read 方法里使用了 is_readable 函數來確認文件是否存在,而 is_readable 不能作用於 url
所以不可直接遠程讀取
但若繞過 is_readable 函數的話,就是可以的
public function read($sFileName)
{
// Check if file exists and is readable
if(!is_readable($sFileName)) {
throw new Exception("Could not open " . $sFileName . " for reading! File does not exist, or it is not readable.");
}
// Get the file data
$this->data = file_get_contents($sFileName);