Exemple #1
0
 /**
  * Формирует .xls данные о деньгах работодателей по текущим незакрытым сделкам за указанный период.
  *
  * @param array $filter фильтр по дате.
  */
 public function printRevisionReport($filter = null)
 {
     if (!$filter['to']) {
         $filter['to'] = array('day' => date('d'), 'month' => date('n'), 'year' => date('Y'));
     }
     if (!($rep = $this->getRevisionReport($filter))) {
         return false;
     }
     $period = $this->_createPeriodStr($filter);
     $rpss = self::$reports_ss['REV'];
     $COL_START = 0;
     require_once 'Spreadsheet/Excel/Writer.php';
     $workbook = new Spreadsheet_Excel_Writer();
     $workbook->send('СБР_сверка_' . str_replace('.', '_', $period[0]) . '.xls');
     $body_sty = array('FontFamily' => 'Arial', 'Size' => 10, 'Bold' => 1);
     $td_sty = array('FontFamily' => 'Calibri', 'VAlign' => 'vequal_space', 'Align' => 'center', 'Size' => 11, 'Border' => 1, 'BorderColor' => 'black', 'NumFormat' => '#');
     $th_sty = array('FontFamily' => 'Arial', 'Size' => 10, 'Align' => 'center', 'Border' => 1, 'BorderColor' => 'black', 'Bold' => 1);
     $l_sty = array('Align' => 'left');
     $r_sty = array('Align' => 'right', 'NumFormat' => '### ### ##0.00');
     $fmtBODY =& $workbook->addFormat($body_sty);
     $fmtBODYR =& $workbook->addFormat($body_sty + $r_sty);
     $fmtTD =& $workbook->addFormat($td_sty);
     $fmtTH =& $workbook->addFormat($th_sty);
     $fmtTH->setTextWrap(1);
     $fmtTDL =& $workbook->addFormat($l_sty + $td_sty);
     $fmtTDR =& $workbook->addFormat($r_sty + $td_sty);
     $worksheet = $workbook->addWorksheet('Сверка');
     $worksheet->setInputEncoding('windows-1251');
     $worksheet->setZoom(75);
     $worksheet->setColumn(0, 0, 2);
     // Заголовок
     $worksheet->write(0, $COL_START, $rpss['name'], $fmtBODY);
     $worksheet->write(1, $COL_START, 'Остатки кредиторской задолженности по сервису «Безопасная Сделка»', $fmtBODY);
     $worksheet->write(2, $COL_START, $period[0], $fmtBODY);
     $worksheet->write(2, 5, 'Дата ' . date('d.m.Y H:i'), $fmtBODY);
     $worksheet->mergeCells(0, $COL_START, 0, 6);
     // Шапка таблицы.
     $i = $COL_START;
     foreach ($rpss['columns'] as $f => $col) {
         $worksheet->setColumn($i, $i, $col[1][0]);
         $worksheet->write(4, $i, $col[0], $fmtTH);
         ++$i;
     }
     // Таблица.
     $i = 5;
     $sum_all = 0;
     foreach ($rep as $row) {
         $j = $COL_START;
         $sum_all += $row['sum_dept'];
         foreach ($rpss['columns'] as $nm => $col) {
             $worksheet->write($i, $j, htmlspecialchars_decode($row[$nm], ENT_QUOTES), $col[1][1] == 'right' ? $fmtTDR : ($col[1][1] == 'left' ? $fmtTDL : $fmtTD));
             ++$j;
         }
         ++$i;
     }
     // Дно таблицы (итого).
     $worksheet->write($i, 0, 'ИТОГО', $fmtBODYR);
     $worksheet->mergeCells($i, 0, $i, 2);
     $c1 = Spreadsheet_Excel_Writer::rowcolToCell(5, 3);
     $c2 = Spreadsheet_Excel_Writer::rowcolToCell($i - 1, 3);
     $worksheet->writeFormula($i, 3, "=SUM({$c1}:{$c2})", $fmtSR);
     $c1 = Spreadsheet_Excel_Writer::rowcolToCell(5, 4);
     $c2 = Spreadsheet_Excel_Writer::rowcolToCell($i - 1, 4);
     $worksheet->writeFormula($i, 4, "=SUM({$c1}:{$c2})", $fmtSR);
     $c1 = Spreadsheet_Excel_Writer::rowcolToCell(5, 5);
     $c2 = Spreadsheet_Excel_Writer::rowcolToCell($i - 1, 5);
     $worksheet->writeFormula($i, 5, "=SUM({$c1}:{$c2})", $fmtSR);
     $i += 3;
     $r = explode('.', (string) $sum_all);
     $worksheet->write($i, 0, "На {$filter['to']['day']}." . ($filter['to']['month'] < 10 ? '0' . $filter['to']['month'] : $filter['to']['month']) . ".{$filter['to']['year']} задолженность ООО \"Ваан\" в пользу Работодателей  по сервису «Безопасная Сделка»", $fmtBODY);
     $worksheet->write($i + 1, 0, 'Cоставляет ' . intval($r[0]) . ' руб. ' . intval($r[1]) . ' коп.', $fmtBODY);
     $workbook->close();
 }
Exemple #2
0
<?php

require_once 'Spreadsheet/Excel/Writer.php';
$workbook = new Spreadsheet_Excel_Writer('rowcol.xls');
$worksheet1 =& $workbook->addWorksheet("rowcol");
$first = 1;
$last = 10;
for ($i = $first; $i <= $last; $i++) {
    $worksheet1->write($i, 1, $i);
}
$cell1 = Spreadsheet_Excel_Writer::rowcolToCell($first, 1);
$cell2 = Spreadsheet_Excel_Writer::rowcolToCell($last, 1);
$worksheet1->write($last + 1, 0, "Total =");
$worksheet1->writeFormula($last + 1, 1, "=SUM({$cell1}:{$cell2})");
$workbook->close();