php導出excel2007,php導出excel寶塔出錯

本文目錄一覽:

PHP如何將查詢出來的數據導出成excel表格(最好做一個按鈕)?

講的複雜了啊!\x0d\x0a你先在一個完整版的PHPExcel之後解壓,在「Examples」目錄下會找到一大堆例子,根據你的要求這個「01simple-download-xlsx.php」文件就可以了!\x0d\x0a註:你先保持「01simple-download-xlsx.php」文件所在的目錄位置不要變,測試好了,再改變名,移到別的地方,地方變了的話,文件里的 「require_once dirname(__FILE__) . ‘/../Classes/PHPExcel.php’;」的所在位置也要變!\x0d\x0a我們要改動代碼很少,如下:\x0d\x0a// Add some data\x0d\x0a$objPHPExcel-setActiveSheetIndex(0)\x0d\x0a-setCellValue(‘A1’, ‘Hello’)\x0d\x0a-setCellValue(‘B2’, ‘world!’)\x0d\x0a-setCellValue(‘C1’, ‘Hello’)\x0d\x0a-setCellValue(‘D2’, ‘world!’);\x0d\x0a\x0d\x0a// Miscellaneous glyphs, UTF-8\x0d\x0a$objPHPExcel-setActiveSheetIndex(0)\x0d\x0a-setCellValue(‘A4’, ‘Miscellaneous glyphs’)\x0d\x0a-setCellValue(‘A5’, ‘éàèùâêîôûëïüÿäöüç’);\x0d\x0a、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、\x0d\x0a直接用的我的替換\x0d\x0a$objPHPExcel-setActiveSheetIndex(0)//這個就是現實導出的表第一行,有幾列是根據你的那張表有幾列!\x0d\x0a-setCellValue(‘A1’, ‘單號’)\x0d\x0a-setCellValue(‘B1’, ‘標題’)\x0d\x0a-setCellValue(‘C1’, ‘內容’)\x0d\x0a-setCellValue(‘D1’, ‘序列’)\x0d\x0a-setCellValue(‘E1’, ‘數字’);\x0d\x0a//下面實現的就是建立資料庫連接,直接到表,你的連接資料庫、表、欄位應該與我的不一樣,你可以參考\x0d\x0a$conn=@mysql_connect(“localhost”,”root”,”root”) or die(“資料庫伺服器連接錯誤”.mysql_error());//連接mysql資料庫\x0d\x0amysql_select_db(“temp”,$conn) or die(“資料庫訪問錯誤”.mysql_error());//資料庫\x0d\x0amysql_query(“set character set gb2312”);\x0d\x0amysql_query(“set names gb2312”);\x0d\x0a\x0d\x0a$sqlgroups=”select * from test “;//查詢這一張表的條件\x0d\x0a$resultgroups=mysql_query($sqlgroups);\x0d\x0a$numrows=mysql_num_rows($resultgroups);\x0d\x0aif ($numrows0)\x0d\x0a{\x0d\x0a$count=1;\x0d\x0awhile($data=mysql_fetch_array($resultgroups))\x0d\x0a{\x0d\x0a$count+=1;\x0d\x0a$l1=”A”.”$count”;\x0d\x0a$l2=”B”.”$count”;\x0d\x0a$l3=”C”.”$count”;\x0d\x0a$l4=”D”.”$count”;\x0d\x0a$l5=”E”.”$count”;\x0d\x0a$objPHPExcel-setActiveSheetIndex(0) \x0d\x0a-setCellValue($l1, $data[‘id’])//這就是你要導出表的欄位、與對應的名稱\x0d\x0a-setCellValue($l2, $data[‘title’])\x0d\x0a-setCellValue($l3, $data[‘content’])\x0d\x0a-setCellValue($l4, $data[‘sn’])\x0d\x0a-setCellValue($l5, $data[‘num’]);\x0d\x0a}\x0d\x0a}

php導出excel表後,打包成壓縮包,然後下載到本地如何實現?

用PHPExcel,PHPExcel是相當強大的 MS Office Excel 文檔生成類庫。

你上它的官/網把程序包下/載下來,裡面有 PHPExcel 的程序、還有30個實常式序和三個文檔。

看一下其中的開發文檔你就會用了。

讀取(這段在開發文檔里有的,在13頁):

require_once ‘../Classes/PHPExcel/IOFactory.php’;

$objReader = PHPExcel_IOFactory::createReader(‘Excel2007’);

$objReader-setReadDataOnly(true);

$objPHPExcel = $objReader-load(“test.xlsx”);

$objWorksheet = $objPHPExcel-getActiveSheet();

echo ‘table’ . “\n”;

foreach ($objWorksheet-getRowIterator() as $row) {

echo ‘tr’ . “\n”;

$cellIterator = $row-getCellIterator();

$cellIterator-setIterateOnlyExistingCells(false);

foreach ($cellIterator as $cell) {

echo ‘td’ . $cell-getValue() . ‘/td’ . “\n”;

}

echo ‘/tr’ . “\n”;

}

echo ‘/table’ . “\n”;

?

怎麼php導出excel是空白

你要給出的代碼來才能找出問題啊,不夠給一個例子給你看看。

下面有幾種方法。

基本上導出的文件分為兩種:

1:類Excel格式,這個其實不是傳統意義上的Excel文件,只是因為Excel的兼容能力強,能夠正確打開而已。修改這種文件後再保存,通常會提示你是否要轉換成Excel文件。

優點:簡單。

缺點:難以生成格式,如果用來導入需要自己分別編寫相應的程序。

2:Excel格式,與類Excel相對應,這種方法生成的文件更接近於真正的Excel格式。

如果導出中文時出現亂碼,可以嘗試將字元串轉換成gb2312,例如下面就把$yourStr從utf-8轉換成了gb2312:

$yourStr = mb_convert_encoding(“gb2312”, “UTF-8”, $yourStr);

一、PHP導入Excel

1:還是用PHPExcel,官方網站: 。

2:使用PHP-ExcelReader,下載地址:

舉例:

?php

require_once ‘Excel/reader.php’;

// ExcelFile($filename, $encoding);

$data = new Spreadsheet_Excel_Reader();

// Set output Encoding.

$data-setOutputEncoding(‘utf8’);

$data-read(‘ jxlrwtest.xls’);

error_reporting(E_ALL ^ E_NOTICE);

for ($i = 1; $i = $data-sheets[0][‘numRows’]; $i++) {

    for ($j = 1; $j = $data-sheets[0][‘numCols’]; $j++) {

        echo “””.$data-sheets[0][‘cells’][$i][$j].””,”;

    }

    echo “\n”;

}

?

總結 php導出Excel php導入Excel PhpExcel使用說明 PhpExcel使用手冊

方法一:特點,簡單,省心,製表符”\t”用戶分割同一行中的列,換行符”\t\n”可以開啟下一行,還能夠自動識別日期格式,貨幣格式等!

?php

header(“Content-type:application/vnd.ms-excel”);

header(“Content-Disposition:attachment;filename=test_data.xls”);

//輸出內容如下: 

echo   “姓名”.”\t”; 

echo   “年齡”.”\t”; 

echo   “學歷”.”\t”; 

echo   “\n”; 

echo   “張三”.”\t”; 

echo   “25”.”\t”; 

echo   “本科”.”\t”; 

?

動態版

?

$sql = “SELECT * FROM ” .$ecs-table(‘member’). ” “;

$classres = $db-Execute($sql);

header(“Content-type:application/vnd.ms-excel”); 

header(“Content-Disposition:attachment; filename=test_data.xls”);

echo ‘ID’.chr(9);

echo ‘txtPEOClientCode’.chr(9);

echo ‘jcompany’.chr(9);

echo ‘fcompany’.chr(9);

echo ‘ecompany’.chr(9);

echo ‘rcompany’.chr(9);

echo ‘txtAddress’.chr(9);

echo ‘txtCompanyTel’.chr(9);

echo ‘txtFax’.chr(9);

echo ‘txtPostCode’.chr(9);

echo chr(13);

while ($classrow = $classres-FetchRow())

{

//輸出到xls

     echo $classrow[‘id’].chr(9);

     echo $classrow[‘txtPEOClientCode’].chr(9);

     echo $classrow[‘jcompany’].chr(9);

     echo $classrow[‘fcompany’].chr(9);

     echo $classrow[‘ecompany’].chr(9);

     echo $classrow[‘rcompany’].chr(9);

     echo $classrow[‘txtAddress’].chr(9);

     echo $classrow[‘txtCompanyTel’].chr(9);

     echo $classrow[‘txtFax’].chr(9);

     echo $classrow[‘txtPostCode’].chr(9);

     echo chr(13);

}

現在用的Php-excel(),代碼也很簡單:

require (dirname (__FILE__) . “./class-excel-xml.inc.php”);

$sql = “SELECT * FROM ” .$ecs-table(‘member’). ” “;

$classres = $db-Execute($sql);

while($classrow = $classres-FetchRow())

{

$doc[] =   array ($classrow[‘txtPEOClientCode’], $classrow[‘jcompany’], $classrow[‘txtBillTo’]);

}

$xls = new Excel_XML;

$xls-addArray($doc);

$xls-generateXML(“mytest”);

我用的utf-8,結果有亂碼問題,把class-excel-xml.inc.php utf8_encode($v) 替換成$v就沒有亂碼問題了。

1:第一推薦無比風騷的PHPExcel,官方網站:

導入導出都成,可以導出office2007格式,同時兼容2003。

下載下來的包中有文檔和例子,大家可以自行研究。

抄段例子出來:

?php

ini_set(“display_errors”,1);//是否顯示報錯信息

ini_set(‘include_path’, ini_get(‘include_path’).’;D:\\PHP\\PHPExcel 1.6.6\\Tests\\classes\\’);//設置此頁面包含路徑

include “classes/PHPExcel.php”;

include “classes/PHPExcel/Writer/Excel5.php”;

//創建一個excel

$objPHPExcel = new PHPExcel();

$objWriter = new PHPExcel_Writer_Excel5($objPHPExcel);

$objWriter-save(“xxx.xls”);

?

————————————————————————————–

//設置PHPExcel類庫的include path 

set_include_path(‘.’. PATH_SEPARATOR .’D:\workspace\biznaligy_eh\dev_src\includes\PHPExcel’ . PATH_SEPARATOR . get_include_path()); 

    

 

   require_once ‘PHPExcel.php’; 

   require_once ‘PHPExcel/Writer/Excel5.php’;     // 用於其他低版本xls 

   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_NUMBER 的時候,實際出來的效果被沒有把格式設置為”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’); 

//設置對齊方式 

    $objAlignA5 = $objStyleA5-getAlignment(); 

    $objAlignA5-setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT); 

    $objAlignA5-setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER); 

//設置邊框 

   $objBorderA5 = $objStyleA5-getBorders(); 

   $objBorderA5-getTop()-setBorderStyle(PHPExcel_Style_Border::BORDER_THIN); 

   $objBorderA5-getTop()-getColor()-setARGB(‘FFFF0000’); // color 

   $objBorderA5-getBottom()-setBorderStyle(PHPExcel_Style_Border::BORDER_THIN); 

   $objBorderA5-getLeft()-setBorderStyle(PHPExcel_Style_Border::BORDER_THIN); 

   $objBorderA5-getRight()-setBorderStyle(PHPExcel_Style_Border::BORDER_THIN); 

//設置填充顏色 

   $objFillA5 = $objStyleA5-getFill(); 

   $objFillA5-setFillType(PHPExcel_Style_Fill::FILL_SOLID); 

   $objFillA5-getStartColor()-setARGB(‘FFEEEEEE’); 

//從指定的單元格複製樣式信息. 

    $objActSheet-duplicateStyle($objStyleA5, ‘B1:C22’); 

//添加圖片 

   $objDrawing = new PHPExcel_Worksheet_Drawing(); 

   $objDrawing-setName(‘ZealImg’); 

   $objDrawing-setDescription(‘Image inserted by Zeal’); 

   $objDrawing-setPath(‘./zeali.net.logo.gif’); 

   $objDrawing-setHeight(36); 

   $objDrawing-setCoordinates(‘C23’); 

   $objDrawing-setOffsetX(10); 

   $objDrawing-setRotation(15); 

   $objDrawing-getShadow()-setVisible(true); 

   $objDrawing-getShadow()-setDirection(36); 

   $objDrawing-setWorksheet($objActSheet); 

//添加一個新的worksheet 

   $objExcel-createSheet(); 

   $objExcel-getSheet(1)-setTitle(‘測試2’); 

//保護單元格 

   $objExcel-getSheet(1)-getProtection()-setSheet(true); 

   $objExcel-getSheet(1)-protectCells(‘A1:C22’, ‘PHPExcel’); 

//輸出內容 

$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(“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’); 

?

php怎麼導出大量數據的Excel

微軟的Excel設置單元格行數默認是6萬行rows,相對的講其實當我們超過1萬行的時候已經是大數據的導出。

好比:有客戶10000人,平均每人每天產生10條活動記錄,要導出上周所有的客戶活動記錄: 10000*10*7=700000

估計看70萬行的Excel這個人會瘋掉的,我們的建議是分批次導出,按時間導出到不同的excel

下面是一個PHPExcel官方的Demo(已修改過)

複製代碼

define(‘EOL’, ‘br /’);

$objPHPExcel = new \app\extensions\PHPExcel\PHPExcel();

ini_set(“memory_limit”, “1024M”); // 設置php可使用內存

$cacheMethod = \PHPExcel_CachedObjectStorageFactory::cache_in_memory_gzip;

if (!\PHPExcel_Settings::setCacheStorageMethod($cacheMethod)) {

die($cacheMethod . ” 緩存方法不可用” . EOL);

}

echo date(‘H:i:s’), ” 當前使用的緩存方法是: “, $cacheMethod, ” 方式”, EOL;

echo date(‘H:i:s’), ” 開始設置文檔屬性”, EOL;

$objPHPExcel-getProperties()-setCreator(“Maarten Balliauw”)

-setLastModifiedBy(“Maarten Balliauw”)

-setTitle(“Office 2007 XLSX Test Document”)

-setSubject(“Office 2007 XLSX Test Document”)

具體的還有很多寫不下,我是在後盾人看的教學視頻無意中學到的,正好解答給你希望能幫到你

原創文章,作者:ZWJC,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/141742.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
ZWJC的頭像ZWJC
上一篇 2024-10-08 18:04
下一篇 2024-10-08 18:05

相關推薦

  • PHP和Python哪個好找工作?

    PHP和Python都是非常流行的編程語言,它們被廣泛應用於不同領域的開發中。但是,在考慮擇業方向的時候,很多人都會有一個問題:PHP和Python哪個好找工作?這篇文章將從多個方…

    編程 2025-04-29
  • PHP怎麼接幣

    想要在自己的網站或應用中接受比特幣等加密貨幣的支付,就需要對該加密貨幣擁有一定的了解,並使用對應的API進行開發。本文將從多個方面詳細闡述如何使用PHP接受加密貨幣的支付。 一、環…

    編程 2025-04-29
  • 為什麼不能用Microsoft Excel進行Python編程?

    Microsoft Excel是一個廣泛使用的數據分析工具,但是它不能直接用於Python編程。這是因為Microsoft Excel並不是一個編程工具,它的主要功能是進行數據處理…

    編程 2025-04-29
  • 使用PHP foreach遍歷有相同屬性的值

    本篇文章將介紹如何使用PHP foreach遍歷具有相同屬性的值,並給出相應的代碼示例。 一、基礎概念 在講解如何使用PHP foreach遍歷有相同屬性的值之前,我們需要先了解幾…

    編程 2025-04-28
  • 基尼係數Excel計算模板

    這篇文章將介紹基尼係數Excel計算模板,為大家詳細闡述如何使用Excel進行基尼係數的計算。 一、模板下載及導入 首先需要下載基尼係數的Excel計算模板,可以在Excel中通過…

    編程 2025-04-28
  • PHP獲取301跳轉後的地址

    本文將為大家介紹如何使用PHP獲取301跳轉後的地址。301重定向是什麼呢?當我們訪問一個網頁A,但是它已經被遷移到了另一個地址B,此時若伺服器端做了301重定向,那麼你的瀏覽器在…

    編程 2025-04-27
  • PHP登錄頁面代碼實現

    本文將從多個方面詳細闡述如何使用PHP編寫一個簡單的登錄頁面。 1. PHP登錄頁面基本架構 在PHP登錄頁面中,需要包含HTML表單,用戶在表單中輸入賬號密碼等信息,提交表單後服…

    編程 2025-04-27
  • 使用ReoGrid操作Excel的WPf應用

    本文將詳細闡述如何使用ReoGrid來操作Excel,重點介紹在WPF應用程序中使用ReoGrid的方法及注意點。 一、ReoGrid簡介 ReoGrid是一個基於.NET的開源組…

    編程 2025-04-27
  • 授權版寶塔的使用指南

    本文將從以下幾個方面詳細闡述授權版寶塔的使用方法和注意事項。 一、安裝授權版寶塔 首先需要提醒的是,授權版寶塔需要購買正版授權後才能使用。購買後可以在官方網站下載對應的安裝包,然後…

    編程 2025-04-27
  • PHP與Python的比較

    本文將會對PHP與Python進行比較和對比分析,包括語法特性、優缺點等方面。幫助讀者更好地理解和使用這兩種語言。 一、語法特性 PHP語法特性: <?php // 簡單的P…

    編程 2025-04-27

發表回復

登錄後才能評論