douwen3500 2014-11-13 00:49 采纳率: 0%
浏览 144
已采纳

在PHPExcel中获取命名范围

Using PHPExcel, I would like to loop through all the named ranges in a workbook and then create a new tab for each one.

I am currently doing this in excel with a macro, like so:

Dim sheetName As String
sheetName = ActiveSheet.Name

Dim nName As Name

For Each nName In Names
    If InStr(1, nName.RefersTo, sheetName) > 0 Then
        Application.Goto Reference:=nName.Name
        Selection.Copy
        Sheets.Add After:=Sheets(Sheets.Count)
        ActiveSheet.Name = nName.Name
        Selection.PasteSpecial Paste:=xlPasteValues
    End If
Next nName
mystring = Sheets(1).Name
ActiveWorkbook.SaveCopyAs Filename:="P:\DP\CWBI\" & mystring & "_parsed.xls"

I can loop through active sheets in PHPExcel and dump them into an array for processing, like this:

$objReader = PHPExcel_IOFactory::createReader('Excel2007');
$sheets = $objReader->listWorksheetNames($file);

print_r ($sheets);

Does anyone know if it's possible to loop through all the named ranges?

Edit:

I'm trying the first suggestion below, but not getting any output. Here's the code:

$file="span_test.xlsx";
$objPHPExcel = PHPExcel_IOFactory::load($file);

foreach($objPHPExcel->getNamedRanges() as $name => $namedRange) {
   echo $namedRange . "</br>";   
}

Got it working now, my mistake in trying to echo an object. should be

print_r($name)
  • 写回答

1条回答 默认 最新

  • doushu5805 2014-11-13 00:58
    关注

    You have to actually load the workbook to access the named ranges

    foreach($objPHPExcel->getNamedRanges() as $name => $namedRange) { ... }
    

    which returns a PHPExcel_NamedRange object for each named range

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)
  • ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。