ホームページ >バックエンド開発 >PHPチュートリアル >php Excelファイルのエクスポートとインポート

php Excelファイルのエクスポートとインポート

WBOY
WBOYオリジナル
2016-07-25 09:09:32939ブラウズ
PHPExcel は、非常に強力な MS Office Excel ドキュメント生成クラス ライブラリです。より複雑な形式でデータを出力する必要がある場合は、PHPExcel が適しています。ただし、その使用方法は比較的複雑です。覚えておくためにリストアップしてください。
  1. //PHPExcelクラスライブラリのインクルードパスを設定します
  2. set_include_path('.'. PATH_SEPARATOR .
  3. 'D:ZealPHP_LIBS' . PATH_SEPARATOR .
  4. get_include_path());
  5. /**
  6. * 以下は使用例です。//// で始まる行にはさまざまなオプションのメソッドがあります。実際の必要に応じてください。
  7. * 該当する行のコメントをオンにします。
  8. ※ Excel5を使用する場合、出力内容はGBKエンコードされている必要があります。
  9. * /
  10. require_once 'PHPExcel.php';
  11. // uncomment
  12. ////require_once 'PHPExcel/Writer/Excel5.php' // 他の下位バージョンの xls の場合
  13. // または
  14. ////require_once; 'PHPExcel /Writer/Excel2007.php'; // Excel-2007形式で使用します
  15. // 処理オブジェクトのインスタンスを作成します
  16. $objExcel = new PHPExcel();
  17. // ファイル形式の書き込みオブジェクトのインスタンスを作成し、コメントを解除します
  18. // //$objWriter = new PHPExcel_Writer_Excel5($objExcel); // 他のバージョン形式の場合
  19. // または
  20. ////$objWriter = new PHPExcel_Writer_Excel2007($objExcel) // 2007 形式の場合
  21. //$objWriter- >setOffice2003Compatibility(true);
  22. //************************************
  23. / /基本的なドキュメントのプロパティを設定します
  24. $objProps = $objExcel->getProperties();
  25. $objProps->setCreator("Zeal Li");
  26. $objProps->setLastModifiedBy("Zeal Li");
  27. $objProps- > ;setTitle("Office XLS テスト ドキュメント");
  28. $objProps->setSubject("Office XLS テスト ドキュメント、デモ");
  29. $objProps->setDescription("テスト ドキュメント、PHPExcel によって生成されました。");
  30. $ objProps->setKeywords("office Excel PHPExcel");
  31. $objProps->setCategory("Test");
  32. //******************* * *****************
  33. //後続のコンテンツ操作のために現在のシート インデックスを設定します。
  34. //通常、表示呼び出しは複数のシートを使用する場合にのみ必要です。
  35. //デフォルトでは、PHPExcel は SheetIndex=0 で最初のシートを自動的に作成します
  36. $objExcel->setActiveSheetIndex(0);
  37. $objActSheet = $objExcel->getActiveSheet();
  38. / /名前を設定します現在アクティブなシートの
  39. $objActSheet->setTitle('Test Sheet');
  40. //*************************** *** ************
  41. //セルの内容を設定します
  42. //
  43. //PHPExcel は、受信した内容に基づいてセルの内容タイプを自動的に決定します
  44. $objActSheet->setCellValue('A1' , ' String content') // 文字列コンテンツ
  45. $objActSheet->setCellValue('A2', 26); // 値
  46. $objActSheet->setCellValue('A3', true); objActSheet->setCellValue('A4', '=SUM(A2:A2)'); // 式
  47. //コンテンツ タイプを明示的に指定
  48. $objActSheet->setCellValueExplicit('A5', '847475847857487584',
  49. ) PHPExcel_Cell_DataType::TYPE_STRING);
  50. //セルを結合
  51. $objActSheet->mergeCells('B1:C22');
  52. //セルを分離
  53. $objActSheet->unmergeCells('B1:C22'); //************************************
  54. //セルのスタイルを設定します
  55. / /
  56. / /幅を設定
  57. $objActSheet->getColumnDimension('B')->setAutoSize(true);
  58. $objActSheet->getColumnDimension('A')->setWidth(30);
  59. $ objStyleA5 = $objActSheet ->getStyle('A5');
  60. //セルの内容の数値形式を設定します。
  61. //
  62. //PHPExcel_Writer_Excel5 を使用してコンテンツを生成する場合、
  63. //ここで注意すべき点は、
  64. //PHPExcel_Style_NumberFormat クラスの const 変数で定義されるさまざまなカスタム書式設定メソッドでは、他の型も通常どおり使用できますが、 setFormatCode
  65. // が FORMAT_NUMBER の場合、実際の効果はフォーマットが "0" に設定されないことです。
  66. //PHPExcel_Writer_Excel5_Format クラスのソース コードの getXf($style) メソッドを変更する必要があります。
  67. // if ($this->_BIFF_version == 0x0500) { の前に
  68. // コード行を追加します (行 363 付近) :
  69. //if($ifmt === '0') $ifmt = 1;
  70. //
  71. //特定の大きな数値が科学表記法を使用して表示されるのを避けるために、形式を PHPExcel_Style_NumberFormat::FORMAT_NUMBER に設定します
  72. //以下の setAutoSize メソッドにより、各行の内容
  73. // を元の内容に従って表示させることができます。
  74. $objStyleA5
  75. ->getNumberFormat()
  76. ->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_NUMBER);
  77. //設置文字
  78. $objFontA5 = $objStyleA5->getFont();
  79. $objFontA5->setName( ' Courier New');
  80. $objFontA5->setSize(10);
  81. $objFontA5->setBold(true);
  82. $objFontA5->setUnderline(PHPExcel_Style_Font::UNDERLINE_SINGLE);
  83. $objFontA5->getColor() ->setARGB('FF999999');
  84. //設定方法
  85. $objAlignA5 = $objStyleA5->getAlignment();
  86. $objAlignA5->set水平(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);
  87. $objAlignA5- > setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);
  88. //設置边框
  89. $objBorderA5 = $objStyleA5->getBorders();
  90. $objBorderA5->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
  91. $objBorderA5 ->getTop()->getColor()->setARGB('FFFF0000'); // color
  92. $objBorderA5->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
  93. $objBorderA5->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
  94. $objBorderA5->getRight () - > setBorderStyle(phpexcel_style_border :: border_thin); ->getStartColor()->setARGB('FFEEEEEE');
  95. //指定された单元格复制样式情報.
  96. $objActSheet->duplicateStyle($objStyleA5, 'B1:C22');
  97. //*************************************
  98. //追加图片
  99. $objDrawing = new PHPExcel_Worksheet_Drawing ();
  100. $objDrawing->setName('ZealImg');
  101. $objDrawing->setDescription('Zeal によって挿入された画像');
  102. $objDrawing->setPath('./zeali.net.logo.gif ');
  103. $objDrawing->setHeight(36);
  104. $objDrawing->setCoowned('C23');
  105. $objDrawing->setOffsetX(10);
  106. $objDrawing->setRotation(15);
  107. $objDrawing->getShadow()->setVisible(true);
  108. $objDrawing->getShadow()->setDirection(36);
  109. $objDrawing->setWorksheet($objActSheet);
  110. //新しいワークシートを追加しました
  111. $objExcel->createSheet();
  112. $objExcel->getSheet(1)->setTitle('测试2');
  113. //保护单元格
  114. $objExcel->getSheet (1)->getProtection()->setSheet(true);
  115. $objExcel->getSheet(1)->protectCells('A1:C22', 'PHPExcel');
  116. //** ************************************
  117. //出力内容
  118. //
  119. $outputFileName = "出力。 xls";
  120. //到文件
  121. ////$objWriter->save($outputFileName);
  122. //or
  123. //到浏览器
  124. ////header("Content-Type: application/force-ダウンロード");
  125. ////header("Content-Type: application/octet-stream");
  126. ////header("Content-Type: application/download");
  127. ////header(' Content-Disposition:inline;filename="'.$outputFileName.'"');
  128. ////header("Content-Transfer-Encoding: binary");
  129. ////header("有効期限: 月 26 1997 年 7 月 05:00:00 GMT");
  130. ////header("Last-Modified: " . gmdate("D, d M Y H:i:s") 。 " GMT");
  131. ////header("キャッシュ制御: 必須再検証、事後チェック = 0、事前チェック = 0");
  132. ////ヘッダー("プラグマ: キャッシュなし") ;
  133. ////$objWriter->save('php://output');
  134. ?>
  135. 复制代码
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。