Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- if(file_exists("started")) die("Other process is running");
- touch ("started");
- include("activ_data.php");
- //setlocale(LC_NUMERIC, 'bulgarian');
- setlocale(LC_ALL, "bulgarian");
- $excel = new COM("excel.application") or die("Unable to instanciate excel");
- print "Loaded excel, version {$excel->Version}<br />\n";
- //bring it to front
- $excel->Visible = 0;//NOT
- //dont want alerts ... run silent
- $excel->DisplayAlerts = 0;
- //create a new workbook
- $wkb = $excel->Workbooks->Add();
- // delete unused sheets
- $sheet=$wkb->Worksheets(3);
- $sheet->activate;
- $sheet->delete;
- $sheet=$wkb->Worksheets(2);
- $sheet->activate;
- $sheet->delete;
- //select the default sheet
- $sheet=$wkb->Worksheets(1);
- //make it the active sheet
- $sheet->activate;
- // give the sheet name
- if (isset($s_title)) {
- $sheet->name = $s_title;
- }
- $sheet->activate;
- $sheet->PageSetup->PrintTitleRows = "";
- $sheet->PageSetup->PrintTitleColumns = "";
- $sheet->PageSetup->PrintArea = "";
- $sheet->PageSetup->LeftHeader = "";
- $sheet->PageSetup->CenterHeader = "&\"Arial,Bold\"&11".$title."\nÃëàñóâàëè ".number_format($bg_voters, 0, ',', ' ')." îò ".number_format($bg_base, 0, ",", " ")." (".number_format($bg_percent, 3, ",", " ")." %)";
- $sheet->PageSetup->RightHeader = "\nÑòð. &P îò &N";
- if (isset($_SESSION["usernm"]) && strlen($_SESSION["usernm"]) > 0) {
- $sheet->PageSetup->LeftFooter = "Èçãîòâèë:.............................\n ".iconv("UTF-8","windows-1251",$_SESSION["usernm"])." (ïîäïèñ)";
- } else {
- $sheet->PageSetup->LeftFooter = "Èçãîòâèë:.............................\n (èìå è ïîäïèñ)";
- }
- $sheet->PageSetup->CenterFooter = "Ïðèåë:.............................\n (èìå è ïîäïèñ)";
- $sheet->PageSetup->RightFooter = "Äàòà: ".date("d m Y ã.")."\n×àñ: ".date("H:i:s");
- $sheet->PageSetup->LeftMargin = $excel->InchesToPoints(0.648031496062992);
- $sheet->PageSetup->RightMargin = $excel->InchesToPoints(0.648031496062992);
- $sheet->PageSetup->TopMargin = $excel->InchesToPoints(0.984251968503937);
- $sheet->PageSetup->BottomMargin = $excel->InchesToPoints(1.18110236220472);
- $sheet->PageSetup->HeaderMargin = $excel->InchesToPoints(0.511811023622047);
- $sheet->PageSetup->FooterMargin = $excel->InchesToPoints(0.511811023622047);
- $sheet->PageSetup->PrintTitleRows = "$1:$1";
- $sheet->PageSetup->PrintHeadings = false;
- $sheet->PageSetup->PrintGridlines = false;
- $sheet->PageSetup->CenterHorizontally = true;
- $sheet->PageSetup->CenterVertically = true;
- $sheet->PageSetup->Orientation = 1;
- $sheet->PageSetup->PaperSize = 9;
- $sheet->PageSetup->Zoom = 100;
- $columnWidths = array(
- "A" => 12,
- "B" => 25,
- "C" => 12,
- "D" => 12,
- "E" => 12
- );
- foreach ($columnWidths as $k=>$v) {
- $column = $excel->Columns($k.":".$k);
- $column->ColumnWidth = $v;
- }
- unset($column);
- function addHeader($row) {
- global $excel, $sheet;
- // Îáëàñò
- $sheet->Cells($row,1)->value = "Îáëàñò";
- // Îáùèíè
- $sheet->Cells($row,2)->value = "Îáùèíè";
- // Áàçà
- $sheet->Cells($row,3)->value = "Áàçà";
- // Ãëàñóâàëè
- $sheet->Cells($row,4)->value = "Ãëàñóâàëè";
- // Àêòèâíîñò
- $sheet->Cells($row,5)->value = "Àêòèâíîñò";
- $excel->Range("A".$row.":E".$row)->Select;
- $excel->Selection->HorizontalAlignment = -4108;
- $excel->Selection->VerticalAlignment = -4108;
- $excel->Selection->Font->Bold = true;
- // left - 7
- // top - 8
- // bottom - 9
- // right - 10
- // vertical - 11
- // horizontal - 12
- for ($i = 7; $i <= 11; $i++) {
- $excel->Selection->Borders($i)->LineStyle = 1;
- $excel->Selection->Borders($i)->Weight = 2;
- $excel->Selection->Borders($i)->ColorIndex = -4105;
- }
- }
- $cols = array(1=>"A", "B", "C", "D", "E", "F", "G");
- $row = 1;
- $col = 2;
- $printareas = array();
- foreach ($data as $obl) {
- $inrow = $row;
- addHeader($inrow);
- $inrow++;
- foreach ($obl["obshtini"] as $ob) {
- $sheet->Cells($inrow,$col)->value = $ob["name"];
- $excel->Range($cols[$col+1].$inrow)->Select;
- $excel->Selection->NumberFormat = '# ##0';
- $sheet->Cells($inrow,$col+1)->FormulaR1C1 = $ob["base"];
- $excel->Range($cols[$col+2].$inrow)->Select;
- $excel->Selection->NumberFormat = '# ##0';
- $sheet->Cells($inrow,$col+2)->FormulaR1C1 = $ob["voters"];
- $excel->Range($cols[$col+3].$inrow)->Select;
- $excel->Selection->NumberFormat = '0,000';
- $sheet->Cells($inrow,$col+3)->FormulaR1C1 = (float) $ob["percent"];
- $inrow++;
- }
- $excel->Range($cols[1].($row+1).":".$cols[1].$inrow)->Select;
- $excel->Selection->Merge;
- $excel->Selection->VerticalAlignment = -4108;
- $excel->Selection->HorizontalAlignment = -4108;
- $excel->Selection->Orientation = 45;
- $excel->Selection->WrapText = true;
- $excel->Selection->Font->Bold = true;
- $excel->Selection->Font->Size = 11;
- $sheet->Cells($row+1,1)->value = $obl["obl_name"];
- $excel->Range($cols[3].$inrow)->Select;
- $excel->Selection->NumberFormat = '# ##0';
- $sheet->Cells($inrow,3)->FormulaR1C1 = $obl["base"];
- $excel->Range($cols[4].$inrow)->Select;
- $excel->Selection->NumberFormat = '# ##0';
- $sheet->Cells($inrow,4)->FormulaR1C1 = $obl["voters"];
- $excel->Range($cols[5].$inrow)->Select;
- $excel->Selection->NumberFormat = '0,000';
- $sheet->Cells($inrow,5)->FormulaR1C1 = (float) $obl["percent"];
- $excel->Range($cols[3].$inrow.":".$cols[5].$inrow)->Select;
- $excel->Selection->Font->Bold = true;
- $excel->Range($cols[1].$row.":".$cols[5].$inrow)->Select;
- for ($i = 7; $i <= 12; $i++) {
- $excel->Selection->Borders($i)->LineStyle = 1;
- $excel->Selection->Borders($i)->Weight = 2;
- $excel->Selection->Borders($i)->ColorIndex = -4105;
- }
- $excel->Range($cols[2].$inrow)->Select;
- $excel->Selection->Borders(7)->LineStyle = -4142;
- $row = $inrow + 2;
- }
- $excel->Range("A1:A1")->Select;
- $strPath = dirname(__FILE__).'\generated.xls';
- // save the new file
- if (file_exists($strPath)) {unlink($strPath);}
- $wkb->SaveAs($strPath);
- //close the book
- $wkb->Close(false);
- $excel->Workbooks->Close();
- //free up the RAM
- unset($sheet);
- //closing excel
- $excel->Quit();
- //free the object
- $excel = null;
- echo "Generation completed OK<br />\n";
- unlink ("started");
- ?>
Add Comment
Please, Sign In to add comment