获取新创建的工作表的ID?

时间:2012-10-23 16:05:45

标签: php phpexcel

我正在使用PHPExcel library 打开现有的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工作表

PHP Excel Worksheets

所以,我认为我需要做的是:

  • 打开现有的Excel文件
  • 添加新工作表
  • 获取新添加的工作表的ID(类似mysql_insert_id()的命令)
  • 将有效工作表设置为该ID
  • 设置活动工作表的标题
  • 将内容添加到活动工作表

但是,我似乎无法在PHPExcel文档中找到这样的命令。有人存在吗?如果没有,是否有任何可行的解决方法?我不想覆盖本文档中的现有工作表。

提前致谢,

1 个答案:

答案 0 :(得分:2)

您可以利用createSheet()方法实际返回新工作表的事实。

$newMonthSheet = $objPHPExcel->createSheet();
$newMonthSheet->setTitle( date("d M", strtotime( $weeks[1] ) ) . ' - ' . date("d M", strtotime( $weeks[4] ) ) );