0

必要なものをあちこち探していますが、どこにも行きません。私が欲しいものが許可されていないのか、それとも解決策を見つけるためにそれを適切に表現する方法がわからないだけなのかはわかりません.

多くのワークシートを持つExcelエクスポートを作成しているため、繰り返しコードが多いため、foreachループを作成しました。問題は、私が持っている配列の中に変数があり、それらの特定の変数を必要な場所に配置するコードが必要なことです。

 $y1953 =& $workbook->add_worksheet('1953');
 $y1958 =& $workbook->add_worksheet('1958');
 $y1963 =& $workbook->add_worksheet('1963');
 $y1978 =& $workbook->add_worksheet('1978');
 $y1988 =& $workbook->add_worksheet('1988');
 $y2003 =& $workbook->add_worksheet('2003');       
 $yearlist = array($y1953 => '1953', $y1958 => '1958', $y1963 => '1963', $y1978 => '1978', $y1988 => '1988', $y2003 => '2003');

   foreach ($yearlist as $year => $yearnum){
   $line = 1; # Start on line 2
    # Write each line       
foreach ($bll->rows AS $row) { 
       $numberlist = array (''=>'1', '2'=>'2', '3' => '3', '4' => '4');

      foreach ($numberlist as $name => $num){
      if ($row['gYear'.$name] === $yearnum){
            $col = 0;      

            $year->write_string($line, $col, ''); $col += 1;
            $year->write_string($line, $col, $row['name_last'.$name]);$col += 1;
            $year->write_string($line, $col, $row['name_first'.$name]); $col += 1;
            $year->write_string($line, $col, $row['name_last']); $col +=1;

            if($row['session'. $num .'1'] === '1')
            {
            $year->write_number($line, $col, $row['session'. $num .'1'] );  
            }$col += 1;
            if($row['session'. $num .'2'] === '1')
            {
            $year->write_number($line, $col, $row['session'. $num .'2'] ); 
            }$col += 1; 
            if($row['session'. $num .'3'] === '1')
            {
            $year->write_number($line, $col, $row['session'. $num .'3'] ); 
            }$col += 1; 
            if($row['session'. $num .'4'] === '1')
            {
            $year->write_number($line, $col, $row['session'. $num .'4'] ); 
            }$col += 1; 
            if($row['session'. $num .'5'] === '1')
            {
            $year->write_number($line, $col,$row['session'. $num .'5'] ); 
            }$col += 1; 
            if($row['session'. $num .'6'] === '1')
            {
            $year->write_number($line, $col, $row['session'. $num .'6'] );
            }$col += 1;  
            $year->write_number($line, $col, '1'); $col +=1;
            $year->write_string($line, $col, $row['notes']); $col += 1;     
            $line += 1;
       }
      }


}

$ yearlist は、私が問題を抱えている配列です。$year が foreach ループ内にある場所に、最初の値 "$y1953" が必要です。現在、Excel シートには何も表示されません。コードで変数を必要な場所に配置する方法はありますか?それとも、変数の値でしょうか?

私はこれを別の方法で行いますが、このExcelエクスポートを作成している人は、特定の方法を望んでいます.

ありがとう

4

2 に答える 2

0

おそらく、ループ内にワークシートを作成できます。それ以外の:

 $y1953 =& $workbook->add_worksheet('1953');
 $y1958 =& $workbook->add_worksheet('1958');
 $y1963 =& $workbook->add_worksheet('1963');
 $y1978 =& $workbook->add_worksheet('1978');
 $y1988 =& $workbook->add_worksheet('1988');
 $y2003 =& $workbook->add_worksheet('2003');       
 $yearlist = array($y1953 => '1953', $y1958 => '1958',
  $y1963 => '1963', $y1978 => '1978', $y1988 => '1988',
  $y2003 => '2003');

これを試して:

$yearlist = array('1953', '1958', '1963', '1978', '1988', '2003');
foreach($yearlist as $value)
{
    $sheet =& $workbook->add_worksheet($value);
    //do the job with the year and new worksheet
}
于 2013-07-31T18:51:30.810 に答える