Heim Backend-Entwicklung PHP-Tutorial PHP导入导出Excel步骤

PHP导入导出Excel步骤

Jun 13, 2016 pm 01:04 PM
excel gt phpexcel

PHP导入导出Excel方法
原作者:冰山上的播客
看到这篇文章的时候,很是惊讶原作者的耐心,虽然我们在平时用的也有一些,但没有作者列出来的全,写excel的时候,我用过pear的库,也用过pack压包的头,同样那些利用smarty等作的简单替换xml的也用过,csv的就更不用谈了。呵呵。(COM方式不讲了,这种可读的太多了,我也写过利用wps等进行word等的生成之类的文章 )
但是在读的时候,只用过一种,具体是什么忘了,要回去翻代码了。因为采用的是拿来主义,记不住。
原文地址:http://xinsync.xju.edu.cn/index.php/archives/3858
原文内容:

最近因项目需要,需要开发一个模块,把系统中的一些数据导出成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,官方网站: http://www.codeplex.com/PHPExcel
导入导出都成,可以导出office2007格式,同时兼容2003。
下载下来的包中有文档和例子,大家可以自行研究。
抄段例子出来:


PHP代码

<?php /**  
* PHPExcel  
*  
* Copyright (C) 2006 - 2007 PHPExcel  
*  
* This library is free software; you can redistribute it and/or  
* modify it under the terms of the GNU Lesser General Public  
* License as published by the Free Software Foundation; either  
* version 2.1 of the License, or (at your option) any later version.  
*  
* This library is distributed in the hope that it will be useful,  
* but WITHOUT ANY WARRANTY; without even the implied warranty of  
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU  
* Lesser General Public License for more details.  
*  
* You should have received a copy of the GNU Lesser General Public  
* License along with this library; if not, write to the Free Software  
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA  
*  
* @category   PHPExcel  
* @package    PHPExcel  
* @copyright  Copyright (c) 2006 - 2007 PHPExcel ( http://www.codeplex.com/PHPExcel)  
* @license    http://www.gnu.org/licenses/lgpl.txt    LGPL  
* @version    1.5.0, 2007-10-23  
*/   
   
/** Error reporting */   
error_reporting(E_ALL);   
   
/** Include path **/   
set_include_path(get_include_path() . PATH_SEPARATOR . ‘../Classes/’);   
   
/** PHPExcel */   
include ‘PHPExcel.php’;   
   
/** PHPExcel_Writer_Excel2007 */   
include ‘PHPExcel/Writer/Excel2007.php’;   
   
// Create new PHPExcel object   
echo date(’H:i:s’) . ” Create new PHPExcel object\n”;   
$objPHPExcel = new PHPExcel();   
   
// Set properties   
echo date(’H:i:s’) . ” Set properties\n”;   
$objPHPExcel->getProperties()->setCreator(”Maarten Balliauw”);   
$objPHPExcel->getProperties()->setLastModifiedBy(”Maarten Balliauw”);   
$objPHPExcel->getProperties()->setTitle(”Office 2007 XLSX Test Document”);   
$objPHPExcel->getProperties()->setSubject(”Office 2007 XLSX Test Document”);   
$objPHPExcel->getProperties()->setDescrīption(”Test document for Office 2007 XLSX, generated using PHP classes.”);   
$objPHPExcel->getProperties()->setKeywords(”office 2007 openxml php”);   
$objPHPExcel->getProperties()->setCategory(”Test result file”);   
   
// Add some data   
echo date(’H:i:s’) . ” Add some data\n”;   
$objPHPExcel->setActiveSheetIndex(0);   
$objPHPExcel->getActiveSheet()->setCellValue(’A1′, ‘Hello’);   
$objPHPExcel->getActiveSheet()->setCellValue(’B2′, ‘world!’);   
$objPHPExcel->getActiveSheet()->setCellValue(’C1′, ‘Hello’);   
$objPHPExcel->getActiveSheet()->setCellValue(’D2′, ‘world!’);   
   
// Rename sheet   
echo date(’H:i:s’) . ” Rename sheet\n”;   
$objPHPExcel->getActiveSheet()->setTitle(’Simple’);   
   
// Set active sheet index to the first sheet, so Excel opens this as the first sheet   
$objPHPExcel->setActiveSheetIndex(0);   
   
// Save Excel 2007 file   
echo date(’H:i:s’) . ” Write to Excel2007 format\n”;   
$objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);   
$objWriter->save(str_replace(’.php’, ‘.xlsx’, __FILE__));   
   
// Echo done   
echo date(’H:i:s’) . ” Done writing file.\r\n”; 
Nach dem Login kopieren
 



2、使用pear的Spreadsheet_Excel_Writer类
下载地址: http://pear.php.net/package/Spreadsheet_Excel_Writer
此类依赖于OLE,下载地址:http://pear.php.net/package/OLE
需要注意的是导出的Excel文件格式比较老,修改后保存会提示是否转换成更新的格式。
不过可以设定格式,很强大。

<?php require_once ‘Spreadsheet/Excel/Writer.php’;   
   
// Creating a workbook   
$workbook = new Spreadsheet_Excel_Writer();   
   
// sending HTTP headers   
$workbook->send(’test.xls’);   
   
// Creating a worksheet   
$worksheet =& $workbook->addWorksheet(’My first worksheet’);   
   
// The actual data   
$worksheet->write(0, 0, ‘Name’);   
$worksheet->write(0, 1, ‘Age’);   
$worksheet->write(1, 0, ‘John Smith’);   
$worksheet->write(1, 1, 30);   
$worksheet->write(2, 0, ‘Johann Schmidt’);   
$worksheet->write(2, 1, 31);   
$worksheet->write(3, 0, ‘Juan Herrera’);   
$worksheet->write(3, 1, 32);   
   
// Let’s send the file   
$workbook->close();   
?> 
Nach dem Login kopieren


3:利用smarty,生成符合Excel规范的XML或HTML文件
支持格式,非常完美的导出方案。不过导出来的的本质上还是XML文件,如果用来导入就需要另外处理了。
详细内容请见rardge大侠的帖子:http://bbs.chinaunix.net/viewthread.php?tid=745757

需要注意的是如果导出的表格行数不确定时,最好在模板中把”ss:ExpandedColumnCount=”5″ ss:ExpandedRowCount=”21″”之类的东西删掉。

4、利用pack函数打印出模拟Excel格式的断句符号

这种更接近于Excel标准格式,用office2003修改后保存,还不会弹出提示,推荐用这种方法。
缺点是无格式。

<?php // Send Header   
header(”Pragma: public”);   
header(”Expires: 0″);   
header(”Cache-Control: must-revalidate, post-check=0, pre-check=0″);   
header(”Content-Type: application/force-download”);   
header(”Content-Type: application/octet-stream”);   
header(”Content-Type: application/download”);;   
header(”Content-Disposition: attachment;filename=test.xls “);   
header(”Content-Transfer-Encoding: binary “);   
// XLS Data Cell   
   
xlsBOF();   
xlsWriteLabel(1,0,”My excel line one”);   
xlsWriteLabel(2,0,”My excel line two : “);   
xlsWriteLabel(2,1,”Hello everybody”);   
   
xlsEOF();   
   
function xlsBOF() {   
echo pack(”ssssss”, 0×809, 0×8, 0×0, 0×10, 0×0, 0×0);   
return;   
}   
function xlsEOF() {   
echo pack(”ss”, 0×0A, 0×00);   
return;   
}   
function xlsWriteNumber($Row, $Col, $Value) {   
echo pack(”sssss”, 0×203, 14, $Row, $Col, 0×0);   
echo pack(”d”, $Value);   
return;   
}   
function xlsWriteLabel($Row, $Col, $Value ) {   
$L = strlen($Value);   
echo pack(”ssssss”, 0×204, 8 + $L, $Row, $Col, 0×0, $L);   
echo $Value;   
return;   
}   
?>  
Nach dem Login kopieren

不过笔者在64位linux系统中使用时失败了,断句符号全部变成了乱码。  
  
5、使用制表符、换行符的方法  
制表符”\t”用户分割同一行中的列,换行符”\t\n”可以开启下一行。  
<?php header(”Content-Type: application/vnd.ms-execl”);   
header(”Content-Disposition: attachment; filename=myExcel.xls”);   
header(”Pragma: no-cache”);   
header(”Expires: 0″);   
/*first line*/   
echo “hello”.”\t”;   
echo “world”.”\t”;   
echo “\t\n”;   
   
/*start of second line*/   
echo “this is second line”.”\t”;   
echo “Hi,pretty girl”.”\t”;   
echo “\t\n”;   
?>  
Nach dem Login kopieren



6、使用com
如果你的PHP可以开启com模块,就可以用它来导出Excel文件
<?PHP $filename = “c:/spreadhseet/test.xls”;   
$sheet1 = 1;   
$sheet2 = “sheet2″;   
$excel_app = new COM(”Excel.application”) or Die (”Did not connect”);   
print “Application name: {$excel_app->Application->value}\n” ;   
print “Loaded version: {$excel_app->Application->version}\n”;   
$Workbook = $excel_app->Workbooks->Open(”$filename”) or Die(”Did not open $filename $Workbook”);   
$Worksheet = $Workbook->Worksheets($sheet1);   
$Worksheet->activate;   
$excel_cell = $Worksheet->Range(”C4″);   
$excel_cell->activate;   
$excel_result = $excel_cell->value;   
print “$excel_result\n”;   
$Worksheet = $Workbook->Worksheets($sheet2);   
$Worksheet->activate;   
$excel_cell = $Worksheet->Range(”C4″);   
$excel_cell->activate;   
$excel_result = $excel_cell->value;   
print “$excel_result\n”;   
#To close all instances of excel:   
$Workbook->Close;   
unset($Worksheet);   
unset($Workbook);   
$excel_app->Workbooks->Close();   
$excel_app->Quit();   
unset($excel_app);   
?>   
Nach dem Login kopieren

一个更好的例子: http://blog.chinaunix.net/u/16928/showart_387171.html

一、PHP导入Excel

1:还是用PHPExcel,官方网站: http://www.codeplex.com/PHPExcel。

2:使用PHP-ExcelReader,下载地址: http://sourceforge.net/projects/phpexcelreader
举例:


<?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 sheets[0]['numRows']; $i++) {   
for ($j = 1; $j sheets[0]['numCols']; $j++) {   
echo “\”".$data->sheets[0]['cells'][$i][$j].”\”,”;   
}   
echo “\n”;   
}   
   
?>   
Nach dem Login kopieren

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So filtern Sie in Excel mehr als 3 Schlüsselwörter gleichzeitig So filtern Sie in Excel mehr als 3 Schlüsselwörter gleichzeitig Mar 21, 2024 pm 03:16 PM

Excel wird im Büroalltag häufig zur Verarbeitung von Daten verwendet und es ist oft notwendig, die Funktion „Filter“ zu nutzen. Wenn wir uns für die „Filterung“ in Excel entscheiden, können wir nur bis zu zwei Bedingungen für dieselbe Spalte filtern. Wissen Sie also, wie man in Excel mehr als drei Schlüsselwörter gleichzeitig filtert? Lassen Sie mich es Ihnen als Nächstes demonstrieren. Die erste Methode besteht darin, die Bedingungen schrittweise zum Filter hinzuzufügen. Wenn Sie drei qualifizierende Details gleichzeitig herausfiltern möchten, müssen Sie zunächst eines davon Schritt für Schritt herausfiltern. Zu Beginn können Sie anhand der Konditionen zunächst Mitarbeiter mit dem Namen „Wang“ herausfiltern. Klicken Sie dann auf [OK] und aktivieren Sie dann in den Filterergebnissen die Option [Aktuelle Auswahl zum Filter hinzufügen]. Die Schritte sind wie folgt. Führen Sie die Filterung ebenfalls separat erneut durch

Was soll ich tun, wenn die Rahmenlinie beim Drucken in Excel verschwindet? Was soll ich tun, wenn die Rahmenlinie beim Drucken in Excel verschwindet? Mar 21, 2024 am 09:50 AM

Wenn wir beim Öffnen einer Datei, die gedruckt werden muss, feststellen, dass die Tabellenrahmenlinie aus irgendeinem Grund in der Druckvorschau verschwunden ist, müssen wir uns rechtzeitig darum kümmern, wenn dies auch in Ihrem Ausdruck erscheint file Wenn Sie Fragen wie diese haben, dann schließen Sie sich dem Editor an, um den folgenden Kurs zu erlernen: Was soll ich tun, wenn die Rahmenlinie beim Drucken einer Tabelle in Excel verschwindet? 1. Öffnen Sie eine Datei, die gedruckt werden muss, wie in der Abbildung unten gezeigt. 2. Wählen Sie alle erforderlichen Inhaltsbereiche aus, wie in der Abbildung unten dargestellt. 3. Klicken Sie mit der rechten Maustaste und wählen Sie die Option „Zellen formatieren“, wie in der Abbildung unten gezeigt. 4. Klicken Sie oben im Fenster auf die Option „Rahmen“, wie in der Abbildung unten gezeigt. 5. Wählen Sie links das dünne, durchgezogene Linienmuster im Linienstil aus, wie in der Abbildung unten gezeigt. 6. Wählen Sie „Äußerer Rand“

So ändern Sie den Kompatibilitätsmodus für Excel-Tabellen in den Normalmodus So ändern Sie den Kompatibilitätsmodus für Excel-Tabellen in den Normalmodus Mar 20, 2024 pm 08:01 PM

Bei unserer täglichen Arbeit und beim Lernen kopieren wir Excel-Dateien von anderen, öffnen sie, um Inhalte hinzuzufügen oder sie erneut zu bearbeiten, und speichern sie dann. Manchmal wird ein Dialogfeld zur Kompatibilitätsprüfung angezeigt, was sehr problematisch ist Software, kann es in den Normalmodus geändert werden? Im Folgenden wird Ihnen der Herausgeber detaillierte Schritte zur Lösung dieses Problems vorstellen. Lassen Sie uns gemeinsam lernen. Denken Sie abschließend daran, es zu speichern. 1. Öffnen Sie ein Arbeitsblatt und zeigen Sie im Namen des Arbeitsblatts einen zusätzlichen Kompatibilitätsmodus an, wie in der Abbildung dargestellt. 2. In diesem Arbeitsblatt wird nach dem Ändern des Inhalts und dem Speichern immer das Dialogfeld des Kompatibilitätsprüfers angezeigt. Es ist sehr schwierig, diese Seite zu sehen, wie in der Abbildung gezeigt. 3. Klicken Sie auf die Office-Schaltfläche, klicken Sie auf Speichern unter und dann

So geben Sie den Index in Excel ein So geben Sie den Index in Excel ein Mar 20, 2024 am 11:31 AM

eWir verwenden häufig Excel, um einige Datentabellen usw. zu erstellen. Manchmal müssen wir bei der Eingabe von Parameterwerten eine bestimmte Zahl hochstellen oder tiefstellen Schauen Sie sich die detaillierten Schritte an: 1. Hochgestellte Methode: 1. Geben Sie zunächst a3 (3 ist hochgestellt) in Excel ein. 2. Wählen Sie die Zahl „3“, klicken Sie mit der rechten Maustaste und wählen Sie „Zellen formatieren“. 3. Klicken Sie auf „Hochgestellt“ und dann auf „OK“. 4. Schauen Sie, der Effekt ist so. 2. Tiefgestellte Methode: 1. Geben Sie ähnlich wie bei der hochgestellten Einstellungsmethode „ln310“ (3 ist der tiefgestellte Index) in die Zelle ein, wählen Sie die Zahl „3“ aus, klicken Sie mit der rechten Maustaste und wählen Sie „Zellen formatieren“. 2. Aktivieren Sie „Tiefstellen“ und klicken Sie auf „OK“.

So setzen Sie in Excel hochgestellt So setzen Sie in Excel hochgestellt Mar 20, 2024 pm 04:30 PM

Bei der Verarbeitung von Daten stoßen wir manchmal auf Daten, die verschiedene Symbole wie Vielfache, Temperaturen usw. enthalten. Wissen Sie, wie man in Excel hochgestellte Zeichen setzt? Wenn wir Excel zum Verarbeiten von Daten verwenden und keine hochgestellten Zeichen setzen, wird die Eingabe vieler unserer Daten schwieriger. Heute stellt Ihnen der Editor die spezifische Einstellungsmethode für Excel-Hochstellung vor. 1. Öffnen wir zunächst das Microsoft Office Excel-Dokument auf dem Desktop und wählen Sie den Text aus, der hochgestellt werden soll, wie in der Abbildung gezeigt. 2. Klicken Sie dann mit der rechten Maustaste und wählen Sie die Option „Zellen formatieren“ im Menü, das nach dem Klicken erscheint, wie in der Abbildung gezeigt. 3. Als nächstes im Dialogfeld „Zellen formatieren“, das automatisch angezeigt wird

So verwenden Sie die iif-Funktion in Excel So verwenden Sie die iif-Funktion in Excel Mar 20, 2024 pm 06:10 PM

Die meisten Benutzer verwenden Excel, um Tabellendaten zu verarbeiten. Abgesehen von Experten haben nicht viele Benutzer diese Funktion beim Schreiben in VBA verwendet Die Funktionen der Funktionen sind ähnlich. Lassen Sie mich Ihnen die Verwendung der iif-Funktion vorstellen. Es gibt iif-Funktionen in SQL-Anweisungen und VBA-Code in Excel. Die iif-Funktion ähnelt der IF-Funktion im Excel-Arbeitsblatt. Sie führt eine Beurteilung von wahren und falschen Werten durch und gibt unterschiedliche Ergebnisse basierend auf den logisch berechneten wahren und falschen Werten zurück. IF-Funktionsverwendung ist (Bedingung, ja, nein). IF-Anweisung und IIF-Funktion in VBA Die erstere IF-Anweisung ist eine Steueranweisung, die je nach Bedingungen unterschiedliche Anweisungen ausführen kann, während die letztere

Wo wird der Excel-Lesemodus eingestellt? Wo wird der Excel-Lesemodus eingestellt? Mar 21, 2024 am 08:40 AM

Beim Studium von Software sind wir es gewohnt, Excel zu verwenden, nicht nur, weil es praktisch ist, sondern auch, weil es eine Vielzahl von Formaten erfüllen kann, die in der tatsächlichen Arbeit benötigt werden, und Excel sehr flexibel zu verwenden ist, und es gibt einen Modus dafür Praktisch zum Lesen. Heute habe ich für alle mitgebracht: Wo man den Excel-Lesemodus einstellt. 1. Schalten Sie den Computer ein, öffnen Sie dann die Excel-Anwendung und suchen Sie die Zieldaten. 2. Es gibt zwei Möglichkeiten, den Lesemodus in Excel festzulegen. Der erste: In Excel gibt es eine Vielzahl praktischer Verarbeitungsmethoden, die im Excel-Layout verteilt sind. In der unteren rechten Ecke von Excel gibt es eine Verknüpfung zum Festlegen des Lesemodus. Klicken Sie darauf, um in den Lesemodus zu gelangen. Auf der rechten Seite des Kreuzstrichs befindet sich eine kleine dreidimensionale Markierung .

So fügen Sie Excel-Symbole in PPT-Folien ein So fügen Sie Excel-Symbole in PPT-Folien ein Mar 26, 2024 pm 05:40 PM

1. Öffnen Sie die PPT und blättern Sie zu der Seite, auf der Sie das Excel-Symbol einfügen müssen. Klicken Sie auf die Registerkarte Einfügen. 2. Klicken Sie auf [Objekt]. 3. Das folgende Dialogfeld wird angezeigt. 4. Klicken Sie auf [Aus Datei erstellen] und dann auf [Durchsuchen]. 5. Wählen Sie die einzufügende Excel-Tabelle aus. 6. Klicken Sie auf OK und die folgende Seite wird angezeigt. 7. Aktivieren Sie [Als Symbol anzeigen]. 8. Klicken Sie auf OK.

See all articles