ホームページ >バックエンド開発 >PHPチュートリアル >PHPExcelのエクスポートの問題
PHPExcel クラスを使用してエクスポートするときにいくつかのエラーが発生しました。 。指導を求めています
最初の質問: 警告: Classes/PHPExcel/Calculation.php の 1697 行目に許可なく ini ディレクティブ 'precision' を設定します
2 番目の質問: 致命的なエラー: クラス 'XMLWriter' が Classes/PHPExcel /Shared に見つかりません/XMLWriter.php の 44 行目
関連するコードを投稿してください
前回の問題は解決しましたが、今度は新たな問題が発生しました。
//必要なファイルを導入します
ob_end_clean();
header("Content-type: text/html;charset=utf-8");
require_once '../../Classes/PHPExcel . php';
require_once '../../Classes/PHPExcel/Writer/Excel2007.php';
require_once '../../Classes/PHPExcel/Writer/Excel5.php';
include_once '../ ./Classes/PHPExcel/IOFactory.php';
//処理オブジェクトのインスタンスを作成します
$objExcel = new PHPExcel();
//基本プロパティを設定します
$objExcel->getProperties()->setCreator ("Kemper_Diao");
$objExcel->getProperties()->setLastModifiedBy("Kemper_Diao");
$objExcel->getProperties()->setTitle("Office 2007 XLSX"); >getProperties()->setSubject("Office 2007 XLSX");
$objExcel->getProperties()->setDescription("PHP クラスを使用して生成された Office 2007 XLSX のドキュメント。"); >getProperties()->setKeywords("office php");
$objExcel->getProperties()->setCategory("Excel2007 Output"); // データの処理を開始します。インデックスは 0 から始まります
$ objExcel->getActiveSheet()->getStyle ( 'A1')->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);
$objExcel->getActiveSheet()->getStyle('A1')->getAlignment()->set水平 ( PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
$objExcel->getActiveSheet()->getStyle('A1')->getFont()->setName('Candara');
$objExcel->getActiveSheet() - >getStyle('A1')->getFont()->setSize(16);
$objExcel->getActiveSheet()->getStyle('A1')->getFont()-> (true);
$objExcel->getActiveSheet()->setCellValue('A1',"サプライヤー Excel エクスポート テーブル");
//フィールド名
$objExcel->getActiveSheet()->setCellValue( 'A2', "ID");
$objExcel->getActiveSheet()->setCellValue('B2', "サプライヤー名");
$objExcel->getActiveSheet()->setCellValue( 'C2' , "入札アイテム");
$objExcel->getActiveSheet()->setCellValue('D2', "供給ブランド");
$objExcel->getActiveSheet()->setCellValue('E2 ', "サプライヤー住所");
$objExcel->getActiveSheet()->setCellValue('F2', "サプライヤー資格");
$objExcel->getActiveSheet()->setCellValue('G2 ', "連絡先" );
$objExcel->getActiveSheet()->setCellValue('H2', "連絡先番号");
$objExcel->getActiveSheet()->setCellValue('I2', "その他の連絡先情報") ;
$objExcel->getActiveSheet()->setCellValue('J2', "連携記録");
$objExcel->getActiveSheet()->setCellValue('最近のパフォーマンス");
//サプライヤーのエクスポートパラメータ操作
$projectID = $_POST['projectid'];
//データベース操作
try{
$pdo_db = new PDO("mysql:host=localhost; dbname=test","RASuser" ,"リモート");
$pdo_db->query("set names gbk;");
$result = $pdo_db->query("SELECT * FROM table_suppliercheck WHERE ProjectID=" .$projectID); (PDOException $e){
exit("接続エラー:".$e->getMessage());
$i = 3;
foreach($result as $row) {
//コンテンツを書き込む
$ objExcel->getActiveSheet()->setCellValue('A'.$i, iconv("gbk","utf-8","$row[ID]"));
$objExcel->getActiveSheet() ->setCellValue('B'.$i, iconv("gbk","utf-8","$row[サプライヤー名]"));
$objExcel->getActiveSheet ()->setCellValue('C '.$i, iconv("gbk","utf-8","$row[プロジェクト名]"));
$objExcel->getActiveSheet()->setCellValue( 'D'.$i, iconv( "gbk","utf-8","$row[サプライヤーブランド]"));$objExcel->getActiveSheet()->setCellValue('E'.$i, iconv("gbk","utf-8","$row[SupplierAddress]"));
$objExcel->getActiveSheet()->setCellValue('F'.$i, iconv("gbk","utf-8","$row[SupplierAptitude]"));
$objExcel->getActiveSheet()->setCellValue('G'.$i, iconv("gbk","utf-8","$row[LinkMan]"));
$objExcel->getActiveSheet()->setCellValue('H'.$i, iconv("gbk","utf-8","$row[LinkPhone]"));
$objExcel->getActiveSheet()->setCellValue('I'.$i, iconv("gbk","utf-8","$row[LinkOther]"));
$objExcel->getActiveSheet()->setCellValue('J'.$i, iconv("gbk","utf-8","$row[LastResult]"));
$objExcel->getActiveSheet()->setCellValue('K'.$i, iconv("gbk","utf-8","$row[CooperationRecord]"));
$i++;
}
// 重命名表名
$objExcel->getActiveSheet()->setTitle("供应商");
$objExcel->setActiveSheetIndex(0);
//找出项目名作は表名
$name = $pdo_db->query("SELECT TenderTitle FROM table_tendermessage WHERE ID=".$projectID)->fetch();
$filename = $name['TenderTitle'];
//Excel2003 として保存
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename='.$filename.'.xls');
header('Cache-Control: max-age=0');
$objWriter = PHPExcel_IOFactory::createWriter($objExcel, 'Excel5');
$objWriter->save('php://output');
終了;
?>
これは、OLE.PHP ファイルの出力に問題があることを示しています。
この問題も解決されており、元々はタイム ゾーンの設定の問題でした。 _default_timezone_set () 設定 date_default_timezone_set('PRC'); //东八時区 echo date('Y-m-d H:i:s');
2.在页头使用ini_set('date.timezone','Asia/Chongqing');
3. php.ini を変更します。php5.ini を削除date.timezone を削除します。前の分数を次のように変更します:date.timezone = PRC
2 番目の问問題:致命的なエラー: Classes/PHPExcel/ にクラス「XMLWriter」が見つかりません。 Shared/XMLWriter.php オンライン 44
第二の问题:致命的なエラー: Classes/PHPExcel/Shared/XMLWriter.php オンライン 44 にクラス 'XMLWriter' が見つかりません
解る说下哈,,,,