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 工作表

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 回答