當前位置:首頁 » 編程語言 » phpexcelsheet

phpexcelsheet

發布時間: 2022-12-10 08:24:48

Ⅰ 如何用php讀取Exce表中的多個sheet

:php讀取excel,excel下多個個工作表的方法: 1、利用PHPExcelReader來完成多個excel的讀齲 2、PHPExcel比較強大,能夠將內存中的數據輸出成Excel文件,同時還能夠對Excel做各種操作,下面主要介紹下如何使用PHPExcel進行Excel 2007格式

Ⅱ 怎麼用PHPexcel選定指定的excel並修改裡面的某個sheet

步驟1、在左下角的任一工作表標簽上,單擊滑鼠右鍵,選擇「選定全部工作表」,將所有工作表處於組合狀態;

步驟2、在任一工作表的A1進行字型大小的修改或編輯,該操作將同步到所有表格的A1單元格;
步驟3、完成操作後,在左下角的工作表標簽位置,單擊滑鼠右鍵,「取消組合工作表」,退出組合工作表狀態,避免在任一工作表的獨立操作同步到其他所有工作表。

Ⅲ phpexcel怎麼讀取加密的excel文檔

1下載 phpexcel,

2require_once '../Classes/PHPExcel/IOFactory.php'$reader =PHPExcel_IOFactory::createReader('Excel5'); // 讀取 excel 文件方式 此方法是讀取excel2007之前的版本 excel2007 為讀取2007以後的版本 也可以ClassesPHPExcelReader 文件夾中的類(為所有讀取類,需要哪個填上哪個就行)$PHPExcel = $reader->load("info.xls"); // 文件名稱$sheet = $PHPExcel->getSheet(0); // 讀取第一個工作表從0讀起$highestRow = $sheet->getHighestRow(); // 取得總行數$highestColumn = $sheet->getHighestColumn(); // 取得總列數// 根據自己的數據表的大小修改;3$arr=array(1=>'A',2=>'B',3=>'C',4=>'D',5=>'E',6=>'F',7=>'G',8=>'H',9=>'I',10=>'J',11=>'K',12=>'L',13=>'M',14=>'N',15=>'O',16=>'P',17=>'Q',18=>'R',19=>'S',20=>'T',21=>'U',22=>'V',23=>'W',24=>'X',25=>'Y',26=>'Z');// 每次讀取一行,再在行中循環每列的數值for ($row = 5; $row <= $highestRow; $row++) {for ($column = 1; $arr[$column] != 'T' $column++) {$val = $sheet->getCellByColumnAndRow($column, $row)->getValue();$list[$row][] = $val;}}

print_r($list)。這個方法嘛,可能也不是任何時候都可以的,但確實是很實用的,試試之後你們會有不一樣的感受的,真的是這樣。

Ⅳ 如何用PHPExcel讀取超大excel文件

工作中經常要遇到將xlsx文件中的部分內容導入到資料庫。通常我們都是用PHPExcel來讀取。
通過下面的方法我們可以很容易將一個excel表格讀取成為php數組,之後就可以為所欲為了:
$input_file = "data.xlsx";
$objPHPExcel = PHPExcel_IOFactory::load($input_file);
$sheetData = $objPHPExcel->getSheet(0)->toArray(null, true, true, true);
如果文章到此結束,那價值就不大了。
很不幸的情況總是存在的,當data.xlsx有上萬行,每一行又有很多列,每一列又有很長的字元串,並且有的還有顏色等效果時,用上面的方法經常發生的情況就是內存不足。
好吧,我們還有ini_set來加大內存,還可以用set_time_limit來設置較長的超時,如下:
set_time_limit(90);
ini_set("memory_limit", "1024M");
$input_file = "data.xlsx";
$objPHPExcel = PHPExcel_IOFactory::load($input_file);
$sheetData = $objPHPExcel->getSheet(0)->toArray(null, true, true, true);
但很負責任的說,這些都不是終極的方案。
我曾經試過將內存設置到了2G,超時設置到了90秒,也仍然讀不出一個4000行的花花綠綠的表格。原因都出在toArray這個方法上,它會將處理的結果全保存到數組中,這種方式在處理簡單表格時還是很方便的,但在處理大表格時,真的是很杯具。
我們的解決方案如下:
require 'lib/PHPExcel.php';

set_time_limit(90);
$input_file = "data.xlsx";
$objPHPExcel = PHPExcel_IOFactory::load($input_file);

// 讀取規則
$sheet_read_arr = array();
$sheet_read_arr["sheet1"] = array("A","B","C","D","F");
$sheet_read_arr["sheet2"] = array("A","B","C","D","F");

// 循環所有的頁
foreach ($sheet_read_arr as $key => $val)
{
$currentSheet = $objPHPExcel->getSheetByName($key);// 通過頁名稱取得當前頁
$row_num = $currentSheet->getHighestRow();// 當前頁行數

// 循環從第二行開始,第一行往往是表頭
for ($i = 2; $i <</span>= $row_num; $i++)
{
$cell_values = array();
foreach ($val as $cell_val)
{
$address = $cell_val . $i;// 單元格坐標

// 讀取單元格內容
$cell_values[] = $currentSheet->getCell($address)->getFormattedValue();
}

// 看看數據
print_r($cell_values);
}
}
上面的方式算是較復雜的情況了,如果只是想將所有的單元格全讀出來,用下面的方法就行了:
require 'lib/PHPExcel.php';

set_time_limit(90);
$input_file = "data.xlsx";
$objPHPExcel = PHPExcel_IOFactory::load($input_file);

$sheet_count = $objPHPExcel->getSheetCount();
for ($s = 0; $s <</span> $sheet_count; $s++)
{
$currentSheet = $objPHPExcel->getSheet($s);// 當前頁
$row_num = $currentSheet->getHighestRow();// 當前頁行數
$col_max = $currentSheet->getHighestColumn(); // 當前頁最大列號

// 循環從第二行開始,第一行往往是表頭
for($i = 2; $i <</span>= $row_num; $i++)
{
$cell_values = array();
for($j = 'A'; $j <</span> $col_max; $j++)
{
$address = $j . $i; // 單元格坐標
$cell_values[] = $currentSheet->getCell($address)->getFormattedValue();
}

// 看看數據
print_r($cell_values);
}
}
我們可以將上面的print_r地方改成組拼sql語句並寫入文件,然後用mysql導入,當然也可以直接連接資料庫向表中插入記錄,這就隨意了。

Ⅳ php導出excel表格sheet的問題

到處成EXCEL 我是知道 實際上就是 用html的 table 做成了表格然後 輸出保存時 保存成 a.xls 這樣而已 但是里邊怎麼做成多個sheet我還真不知道 而且 應該是不能分成sheet
實際你根本不用分成sheet 只要把每個內容都存成一個excel 然後你在自己手動建立一個ecel然後自己在建立sheet就可以了

Ⅵ phpexcel的getSheet只能讀取一頁,怎麼獲取一個excel有多少分頁

工作中經常要遇到將xlsx文件中的部分內容導入到資料庫。通常我們都是用PHPExcel來讀齲 通過下面的方法我們可以很容易將一個excel表格讀取成為php數組,之後就可以為所欲為了: $input_file = "data.xlsx"; $objPHPExcel = PHPExcel_IOFactory

Ⅶ phpexcel 簡單導出多個sheet

原文: https://blog.csdn.net/u011341352/article/details/70211962

Ⅷ 高分求指導PHPExcel 修改已經存在的excel文檔中某個sheet中的內容。急!!!

經查閱資料,phpexcel類貌似並不能直接進行excel文檔的編輯(就是打開文檔進行讀寫),而是分成兩個部分:讀或寫。我的建議有兩點:

1. 如果使用PHPExcel類,那麼可以考慮的方法:
先用 PhpExcel 建立reader,再load文件,這樣打開已經存在的文檔,然後再建立writer,將reader中的數據都復制過來,再用 PhpExcel 進行數據修改,再以load的文件名覆蓋保存。

2. 如果可以使用COM,則可以直接用COM進行操作。

Ⅸ 怎麼使用方法phpexcel

PHPExcel 使用方法 舉例介紹
PHPExcel 是相當強大的 MS Office Excel 文檔生成類庫,當需要輸出比較復雜格式數據的時候,PHPExcel 是個不錯的選擇。不過其使用方法相對來說也就有些繁瑣。列舉以記之。
view plain to clipboardprint? <?
//設置PHPExcel類庫的include path set_include_path('.'. PATH_SEPARATOR .
'D:\Zeal\PHP_LIBS' . PATH_SEPARATOR . get_include_path()); /**
* 以下是使用示例,對於以 //// 開頭的行是不同的可選方式,請根據實際需要
* 打開對應行的注釋。
* 如果使用 Excel5 ,輸出的內容應該是GBK編碼。
*/
require_once 'PHPExcel.php';
// uncomment
////require_once 'PHPExcel/Writer/Excel5.php'; // 用於其他低版本xls // or
////require_once 'PHPExcel/Writer/Excel2007.php'; // 用於 excel-2007 格式
// 創建一個處理對象實例 $objExcel = new PHPExcel();
// 創建文件格式寫入對象實例, uncomment
////$objWriter = new PHPExcel_Writer_Excel5($objExcel); // 用於其他版本格式 // or
////$objWriter = new PHPExcel_Writer_Excel2007($objExcel); // 用於 2007 格式
//$objWriter->setOffice2003Compatibility(true);
//*************************************
//設置文檔基本屬性
$objProps = $objExcel->getProperties(); $objProps->setCreator("Zeal Li"); $objProps->setLastModifiedBy("Zeal Li");
$objProps->setTitle("Office XLS Test Document"); $objProps->setSubject("Office XLS Test Document, Demo"); $objProps->setDescription("Test document, generated by PHPExcel.");
$objProps->setKeywords("office excel PHPExcel"); $objProps->setCategory("Test");
//*************************************
//設置當前的sheet索引,用於後續的內容操作。
//一般只有在使用多個sheet的時候才需要顯示調用。
//預設情況下,PHPExcel會自動創建第一個sheet被設置SheetIndex=0 $objExcel->setActiveSheetIndex(0);
$objActSheet = $objExcel->getActiveSheet();
//設置當前活動sheet的名稱
$objActSheet->setTitle('測試Sheet');
//************************************* //設置單元格內容 //
//由PHPExcel根據傳入內容自動判斷單元格內容類型
$objActSheet->setCellValue('A1', '字元串內容'); // 字元串內容 $objActSheet->setCellValue('A2', 26); // 數值 $objActSheet->setCellValue('A3', true); // 布爾值 $objActSheet->setCellValue('A4', '=SUM(A2:A2)'); // 公式
//顯式指定內容類型
$objActSheet->setCellValueExplicit('A5', '847475847857487584', PHPExcel_Cell_DataType::TYPE_STRING);
//合並單元格
$objActSheet->mergeCells('B1:C22');
//分離單元格
$objActSheet->unmergeCells('B1:C22');
//************************************* //設置單元格樣式 //
//設置寬度
$objActSheet->getColumnDimension('B')->setAutoSize(true); $objActSheet->getColumnDimension('A')->setWidth(30);
$objStyleA5 = $objActSheet->getStyle('A5');
//設置單元格內容的數字格式。 //
//如果使用了 PHPExcel_Writer_Excel5 來生成內容的話,
//這里需要注意,在 PHPExcel_Style_NumberFormat 類的 const 變數定義的
//各種自定義格式化方式中,其它類型都可以正常使用,但當setFormatCode
//為 FORMAT_N
//修改 PHPExcel_Writer_Excel5_Format 類源代碼中的 getXf($style) 方法,
//在 if ($this->_BIFF_version == 0x0500) { (第363行附近)前面增加一 //行代碼:
//if($ifmt === '0') $ifmt = 1; //
//設置格式為PHPExcel_Style_NumberFormat::FORMAT_NUMBER,避免某些大數字
//被使用科學記數方式顯示,配合下面的 setAutoSize 方法可以讓每一行的內容
//都按原始內容全部顯示出來。 $objStyleA5
->getNumberFormat()
->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_NUMBER);
UMBER 的時候,實際出來的效果被沒有把格式設置為"0"。需要
//修改 PHPExcel_Writer_Excel5_Format 類源代碼中的 getXf($style) 方法,
//在 if ($this->_BIFF_version == 0x0500) { (第363行附近)前面增加一 //行代碼:
//if($ifmt === '0') $ifmt = 1; //
//設置格式為PHPExcel_Style_NumberFormat::FORMAT_NUMBER,避免某些大數字
//被使用科學記數方式顯示,配合下面的 setAutoSize 方法可以讓每一行的內容
//都按原始內容全部顯示出來。 $objStyleA5
->getNumberFormat()
->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_NUMBER);
//設置字體
$objFontA5 = $objStyleA5->getFont(); $objFontA5->setName('Courier New');
$objFontA5->setSize(10); $objFontA5->setBold(true);
$objFontA5->setUnderline(PHPExcel_Style_Font::UNDERLINE_SINGLE);
$objFontA5->getColor()->setARGB('FF999999');
//輸出內容 //
$outputFileName = "output.xls"; //到文件
////$objWriter->save($outputFileName); //or //到瀏覽器
////header("Content-Type: application/force-download"); ////header("Content-Type: application/octet-stream"); ////header("Content-Type: application/download");
////header('Content-Disposition:inline;filename="'.$outputFileName.'"');
////header("Content-Transfer-Encoding: binary"); ////header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
////header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
////header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
////header("Pragma: no-cache"); ////$objWriter->save('php://output'); ?>

Ⅹ phpexcel的getSheet只能讀取一頁,怎麼獲取一個excel有多少分頁

一個簡單的方法是你寫入excel的時候在時間上加『』,讓他變成字元串,你讀取就沒錯了
還有就是網上搜了一個excelTime的函數也可以正確轉化時間

error_reporting(E_ALL);
date_default_timezone_set('Asia/shanghai');
/** PHPExcel_IOFactory */
require_once '../Classes/PHPExcel/IOFactory.php';
$inputFileName = '6081076641077444758.xls';
$objReader = new PHPExcel_Reader_Excel5();
$objPHPExcel = $objReader->load($inputFileName);
$sheet = $objPHPExcel->getSheet(0);
$highestRow = $sheet->getHighestRow(); // 取得總行數
$highestColumn = $sheet->getHighestColumn(); // 取得總列數

$tempArray = array();
for($j=2;$j<=$highestRow;$j++){
for($k='A';$k<=$highestColumn;$k++){
if($k=='M'||$k=='O') //M列和O列是時間
$tempArray[] = excelTime($objPHPExcel->getActiveSheet()->getCell("$k$j")->getValue());
else
$tempArray[] = $objPHPExcel->getActiveSheet()->getCell("$k$j")->getValue();
}
print_r($tempArray);
unset($tempArray);
}

function excelTime($date, $time = false) {
if(function_exists('GregorianToJD')){
if (is_numeric( $date )) {
$jd = GregorianToJD( 1, 1, 1970 );
$gregorian = JDToGregorian( $jd + intval ( $date ) - 25569 );
$date = explode( '/', $gregorian );
$date_str = str_pad( $date [2], 4, '0', STR_PAD_LEFT )
."-". str_pad( $date [0], 2, '0', STR_PAD_LEFT )
."-". str_pad( $date [1], 2, '0', STR_PAD_LEFT )
. ($time ? " 00:00:00" : '');
return $date_str;
}
}else{
$date=$date>25568?$date+1:25569;
/*There was a bug if Converting date before 1-1-1970 (tstamp 0)*/
$ofs=(70 * 365 + 17+2) * 86400;
$date = date("Y-m-d",($date * 86400) - $ofs).($time ? " 00:00:00" : '');
}
return $date;
}

熱點內容
凸包的graham演算法 發布:2025-01-21 12:00:00 瀏覽:146
jsonobject轉java對象 發布:2025-01-21 12:00:00 瀏覽:306
macpython3默認 發布:2025-01-21 11:58:26 瀏覽:261
芒果伺服器是什麼意思 發布:2025-01-21 11:57:54 瀏覽:40
微信聊天伺服器錯誤什麼意思 發布:2025-01-21 11:56:13 瀏覽:460
linuxtomcat不能訪問 發布:2025-01-21 11:47:11 瀏覽:394
刷新器需要什麼配置 發布:2025-01-21 11:09:28 瀏覽:972
jedis源碼 發布:2025-01-21 11:08:24 瀏覽:890
edm資料庫 發布:2025-01-21 11:05:54 瀏覽:371
QQ咋樣加密 發布:2025-01-21 11:05:45 瀏覽:164