6

このライブラリを使用して PHP 経由で PowerPoint プレゼンテーションを作成しようとしています。PowerPoint 内でチャート オブジェクトを作成しようとすると、ファイルをダウンロードして Microsoft Office で開くと、チャートを編集できません。

PowerPoint ファイル内にグラフを作成し、Office PowerPoint で編集できるライブラリはありますか?

上記のライブラリを使用して作成されたサンプル チャート

4

4 に答える 4

6

これは、PHPパワーポイントのバグである可能性があります。

ただし、最新バージョンのPHPExcelはグラフ作成をサポートしており、積極的に保守されています。これにより、PowerPointに簡単にコピーできるExcelでデータをグラフ化してエクスポートできます。

個人的には、 GoogleChartToolsまたはRaphaelJSを使用することをお勧めします。

チャート例

PowerPointでグラフを使用できるようにする場合は、GoogleグラフデータをExcel(CSV)に簡単にエクスポートできます。この例も参照してください。

特にGoogleAnalyticsを紹介している場合は、GoogleAnalyticsからPowerPointで正確に自動的に更新されるグラフとデータを作成する方法についてこのドキュメントを読む必要があります。基本的にPowerPoint用のoomfoプラグインを使用します。

あるいは、このためのShufflePointのような有料のソリューションがあります。

于 2012-07-29T12:42:15.333 に答える
3

PHPPowerPoint を使用して、編集可能なグラフをエクスポートできます。テストには 2 つの例があります。最初の例には Excel シートが含まれていないため、グラフは編集できません。しかし、test8 と思われる 2 番目の例を見ると、PHPExcel への参照呼び出しと、グラフと共にデータ シートを含めるためのフラグがあり、データを編集できることがわかります。

于 2012-12-22T08:54:59.547 に答える
2

この URL を参照してください:-

PHP PowerPoint 2007 クラス

PowerPoint 2007 など、さまざまなファイル形式の読み書きを可能にする PHP プログラミング言語用の一連のクラスを提供するプロジェクト。このプロジェクトは、Microsoft の OpenXML 標準と PHP を中心に構築されています。

http://phppowerpoint.codeplex.com/

http://phppowerpoint.codeplex.com/sourcecontrol/list/changesets?ProjectName=phppowerpoint

特徴

http://phppowerpoint.codeplex.com/wikipage?title=機能&referringTitle=ホーム

これを試して:-

<?php
/** Error reporting */
error_reporting(E_ALL);

/** Include path **/
set_include_path(get_include_path() . PATH_SEPARATOR . '/Classes/');

/** PHPPowerPoint */
include 'Classes/PHPPowerPoint.php';

// Create new PHPPowerPoint object
$objPHPPowerPoint = new PHPPowerPoint();
$objPHPPowerPoint->getProperties()->setCreator("Maarten Balliauw")->
    setLastModifiedBy("Maarten Balliauw")->setTitle("Office 2007 PPTX Test Document")->
    setSubject("Office 2007 PPTX Test Document")->setDescription("Test document for Office 2007 PPTX, generated using PHP classes.")->
    setKeywords("office 2007 openxml php")->setCategory("Test result file");

// Remove first slide
$objPHPPowerPoint->removeSlideByIndex(0);

// Create templated slide

// Create templated slide
$currentSlide = createTemplatedSlide($objPHPPowerPoint);

// Generate sample data for line chart
$seriesData = array('Jul 17' => 15, 'Jul 18' => 27, 'Jul 19' => 17, 'Jul 20' =>
    11, 'Jul 21' => 7, 'Jul 22' => 2, 'Jul 23' => 8);

// Create a line chart (that should be inserted in a shape)
$lineChart = new PHPPowerPoint_Shape_Chart_Type_Scatter();
$series = new PHPPowerPoint_Shape_Chart_Series('Visits', $seriesData);
//$series->setShowSeriesName(true);
$lineChart->addSeries($series);

// Create a shape (chart)
$shape = $currentSlide->createChartShape();
$shape->setName('# of people visiting your website')->setResizeProportional(false)->setHeight(550)->
    setWidth(700)->setOffsetX(120)->setOffsetY(80);
$shape->getShadow()->setVisible(true)->setDirection(45)->setDistance(10);
$shape->getFill()->setFillType(PHPPowerPoint_Style_Fill::FILL_GRADIENT_LINEAR)->
    setStartColor(new PHPPowerPoint_Style_Color('FFCCCCCC'))->setEndColor(new
    PHPPowerPoint_Style_Color('FFFFFFFF'))->setRotation(270);
$shape->getBorder()->setLineStyle(PHPPowerPoint_Style_Border::LINE_SINGLE);
$shape->getTitle()->setText('# of people visiting your website');
$shape->getTitle()->getFont()->setItalic(true);
$shape->getPlotArea()->setType($lineChart);
$shape->getView3D()->setRotationX(30);
$shape->getView3D()->setPerspective(30);
$shape->getLegend()->getBorder()->setLineStyle(PHPPowerPoint_Style_Border::
    LINE_SINGLE);
$shape->getLegend()->getFont()->setItalic(true);

// Save PowerPoint 2007 file
$objWriter = PHPPowerPoint_IOFactory::createWriter($objPHPPowerPoint,
    'PowerPoint2007');
$objWriter->save(str_replace('.php', '.pptx', __file__));

function createTemplatedSlide(PHPPowerPoint $objPHPPowerPoint) {
    // Create slide
    $slide = $objPHPPowerPoint->createSlide();

    // Return slide
    return $slide;
}
于 2012-08-01T09:58:34.040 に答える
0

正しい例は次のように呼び出されます。

Sample_05_Chart_with_PHPExcel.php

メインの PHPPowerpoint (現在は PHPPresentation と呼ばれるようになっています) フォルダー内の samples フォルダー内

機能させるには、いくつかの変更/追加が必要であることに注意してください。

  1. GitHub からダウンロードしCommon、PHPOffice のフォルダーをどこかに保存します

  2. からオートローダーをインクルードして登録するCommon

  3. GitHub からダウンロードし、PHPExcelフォルダのどこかに保存します

  4. PHPExcel.phpメインファイルを含める

  5. Sample_Header.phpファイルで行を変更しました

    Autoloader::register();

    PhpOffice\PhpPresentation\Autoloader::register();

    競合を避けるため (登録しているオートローダーは?)

  6. ファイルで、Sample_Header.php次の行も削除 (コメント) しました。

    //require_once __DIR__ . '/../vendor/autoload.php';

    エラーが発生しました(私はcomposerを使用しておらず、composerは必要ありません)。

以上で、編集可能な Excel データを内部に含む Powerpoint プレゼンテーションが作成されます。

これは、変更された Sample_Header.php の最終的なコードです (26 ~ 28 行目):

PhpOffice\PhpPresentation\Autoloader::register();

//require_once __DIR__ . '/../vendor/autoload.php';

これは、変更された Sample_05_Chart_with_PHPExcel.php に追加された最終的なコードです (5 行目、 の後include_once 'Sample_Header.php';):

require_once '<path to phpExcel...>/Classes/PHPExcel.php';
include '<path to Common...>/Common/Autoloader.php';
PhpOffice\Common\Autoloader::register();

正しいパスで変更<path to phpExcel...>します。<path to Common...>

于 2015-07-24T09:07:25.880 に答える