Php 是否获取新创建的工作表的ID?

Php 是否获取新创建的工作表的ID?,php,phpexcel,Php,Phpexcel,我正在使用来打开现有的Excel电子表格,然后在其中创建一个新的工作表 我正在使用的代码(不包括所有初始化/保存等,因为所有代码都正常工作)如下所示: #======================================================# # OPEN EXISTING EXCEL SPREADSHEET # #======================================================#

我正在使用来打开现有的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文件
  • 创建新工作表
  • 将第一张工作表的标题设置为我设置的日期
  • 将内容添加到第一个工作表中

因此,我认为我需要做的是:

  • 打开现有的Excel文件
  • 添加新工作表
  • 获取新添加工作表的ID(类似于
    mysql\u insert\u ID()
    的命令)
  • 将活动工作表设置为该ID
  • 设置活动工作表的标题
  • 将内容添加到活动工作表
但是,我在PHPExcel文档中似乎找不到这样的命令。有人存在吗?如果没有,是否有可行的解决办法?我不想覆盖此文档中的现有工作表


提前感谢,

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

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

PHPExcel的哪个版本?您使用的是最新的1.7.8版本吗?非常好。然后,为了添加内容,我是否只需使用
$newMonthSheet->getActiveSheet()->setCellValue('A1','value')?啊-删除
getActiveSheet
命令,效果很好。如果您在Mark附近,请再问一个问题-然后如何将此最新工作表设置为
activeIndex
,即您第一次打开文件时Excel显示的工作表?$newMonthSheet是一个工作表对象,而不是工作簿对象,因此您不需要对该工作表调用L getActiveSheet()。。。要设置活动工作表,有$objPHPExcel->setActiveSheetIndex($n),其中$n是要设置为活动工作表的工作表的索引,或者($objPHPExcel->setActiveSheetIndexByName($name),其中$name是您给工作表的名称/标题