1

PHPExcel ライブラリを使用して既存の Excel スプレッドシートを開き、その中に新しいワークシートを作成しています。

私が使用しているコードは次のとおりです(すべてが正しく機能するため、初期化/保存などのすべてを除く)。

#======================================================#
#  OPEN EXISTING EXCEL SPREADSHEET                     #
#======================================================#

    if (!file_exists( CURRENT_FILE )) {
        exit("Please run " . CURRENT_FILE . " first." . EOL);
    }

    echo date('H:i:s') , " Load from Excel2007 file" , EOL;
    $objPHPExcel = PHPExcel_IOFactory::load( CURRENT_FILE );

#======================================================#



#======================================================#
#  SET UP WORKSHEETS                                   #
#======================================================#

    echo date('H:i:s') , " Create new worksheet for month" , EOL;
    $objPHPExcel->createSheet();
    $objPHPExcel->getActiveSheet()->setTitle( date("d M", strtotime( $weeks[1] ) ) . ' - ' . date("d M", strtotime( $weeks[4] ) ) );

#======================================================#

私がやろうとしていることは次のとおりです。

  • 既存の Excel ファイルを開きます (既に 1 つ以上のワークシートが含まれている場合があります)。
  • 新しいワークシートを作成する
  • 新しいワークシートのタイトルを設定
  • 新しいワークシートにコンテンツを追加する

ただし、起こっているように見えるのは次のとおりです。

  • 既存の Excel ファイルを開く
  • 新しいワークシートを作成します
  • FIRST ワークシートのタイトルを、設定した日付に設定します
  • FIRST ワークシートにコンテンツを追加します

PHP Excel ワークシート

だから、私がする必要があると思うのはこれです:

  • 既存の Excel ファイルを開く
  • 新しいワークシートを追加
  • 新しく追加されたワークシートの ID を取得 ( のようなコマンドmysql_insert_id())
  • アクティブなワークシートをその ID に設定します
  • アクティブなワークシートのタイトルを設定
  • アクティブなワークシートにコンテンツを追加

ただし、PHPExcel のドキュメントでそのようなコマンドを見つけることができないようです。存在しますか?そうでない場合、これに対する実行可能な回避策はありますか? このドキュメントの既存のワークシートを上書きしたくありません。

前もって感謝します、

4

1 に答える 1

2

createSheet()メソッドが実際に新しいワークシートを返すという事実を利用できます。

$newMonthSheet = $objPHPExcel->createSheet();
$newMonthSheet->setTitle( date("d M", strtotime( $weeks[1] ) ) . ' - ' . date("d M", strtotime( $weeks[4] ) ) );
于 2012-10-23T16:18:47.803 に答える