Guest User

Untitled

a guest
May 20th, 2018
145
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.72 KB | None | 0 0
  1. <?php
  2. if(file_exists("started")) die("Other process is running");
  3. touch ("started");
  4.  
  5. include("activ_data.php");
  6. //setlocale(LC_NUMERIC, 'bulgarian');
  7.  
  8. setlocale(LC_ALL, "bulgarian");
  9.  
  10. $excel = new COM("excel.application") or die("Unable to instanciate excel");
  11. print "Loaded excel, version {$excel->Version}<br />\n";
  12.  
  13. //bring it to front
  14. $excel->Visible = 0;//NOT
  15.  
  16. //dont want alerts ... run silent
  17. $excel->DisplayAlerts = 0;
  18.  
  19. //create a new workbook
  20. $wkb = $excel->Workbooks->Add();
  21. // delete unused sheets
  22. $sheet=$wkb->Worksheets(3);
  23. $sheet->activate;
  24. $sheet->delete;
  25. $sheet=$wkb->Worksheets(2);
  26. $sheet->activate;
  27. $sheet->delete;
  28. //select the default sheet
  29. $sheet=$wkb->Worksheets(1);
  30.  
  31. //make it the active sheet
  32. $sheet->activate;
  33.  
  34. // give the sheet name
  35. if (isset($s_title)) {
  36. $sheet->name = $s_title;
  37. }
  38.  
  39. $sheet->activate;
  40. $sheet->PageSetup->PrintTitleRows = "";
  41. $sheet->PageSetup->PrintTitleColumns = "";
  42. $sheet->PageSetup->PrintArea = "";
  43.  
  44. $sheet->PageSetup->LeftHeader = "";
  45. $sheet->PageSetup->CenterHeader = "&\"Arial,Bold\"&11".$title."\nÃëàñóâàëè ".number_format($bg_voters, 0, ',', ' ')." îò ".number_format($bg_base, 0, ",", " ")." (".number_format($bg_percent, 3, ",", " ")." %)";
  46. $sheet->PageSetup->RightHeader = "\nÑòð. &P îò &N";
  47.  
  48. if (isset($_SESSION["usernm"]) && strlen($_SESSION["usernm"]) > 0) {
  49. $sheet->PageSetup->LeftFooter = "Èçãîòâèë:.............................\n ".iconv("UTF-8","windows-1251",$_SESSION["usernm"])." (ïîäïèñ)";
  50. } else {
  51. $sheet->PageSetup->LeftFooter = "Èçãîòâèë:.............................\n (èìå è ïîäïèñ)";
  52. }
  53. $sheet->PageSetup->CenterFooter = "Ïðèåë:.............................\n (èìå è ïîäïèñ)";
  54. $sheet->PageSetup->RightFooter = "Äàòà: ".date("d m Y ã.")."\n×àñ: ".date("H:i:s");
  55.  
  56. $sheet->PageSetup->LeftMargin = $excel->InchesToPoints(0.648031496062992);
  57. $sheet->PageSetup->RightMargin = $excel->InchesToPoints(0.648031496062992);
  58. $sheet->PageSetup->TopMargin = $excel->InchesToPoints(0.984251968503937);
  59. $sheet->PageSetup->BottomMargin = $excel->InchesToPoints(1.18110236220472);
  60. $sheet->PageSetup->HeaderMargin = $excel->InchesToPoints(0.511811023622047);
  61. $sheet->PageSetup->FooterMargin = $excel->InchesToPoints(0.511811023622047);
  62.  
  63. $sheet->PageSetup->PrintTitleRows = "$1:$1";
  64. $sheet->PageSetup->PrintHeadings = false;
  65. $sheet->PageSetup->PrintGridlines = false;
  66. $sheet->PageSetup->CenterHorizontally = true;
  67. $sheet->PageSetup->CenterVertically = true;
  68.  
  69. $sheet->PageSetup->Orientation = 1;
  70. $sheet->PageSetup->PaperSize = 9;
  71. $sheet->PageSetup->Zoom = 100;
  72.  
  73. $columnWidths = array(
  74. "A" => 12,
  75. "B" => 25,
  76. "C" => 12,
  77. "D" => 12,
  78. "E" => 12
  79. );
  80.  
  81. foreach ($columnWidths as $k=>$v) {
  82. $column = $excel->Columns($k.":".$k);
  83. $column->ColumnWidth = $v;
  84. }
  85. unset($column);
  86.  
  87. function addHeader($row) {
  88. global $excel, $sheet;
  89.  
  90. // Îáëàñò
  91. $sheet->Cells($row,1)->value = "Îáëàñò";
  92.  
  93. // Îáùèíè
  94. $sheet->Cells($row,2)->value = "Îáùèíè";
  95.  
  96. // Áàçà
  97. $sheet->Cells($row,3)->value = "Áàçà";
  98.  
  99. // Ãëàñóâàëè
  100. $sheet->Cells($row,4)->value = "Ãëàñóâàëè";
  101.  
  102. // Àêòèâíîñò
  103. $sheet->Cells($row,5)->value = "Àêòèâíîñò";
  104.  
  105. $excel->Range("A".$row.":E".$row)->Select;
  106. $excel->Selection->HorizontalAlignment = -4108;
  107. $excel->Selection->VerticalAlignment = -4108;
  108. $excel->Selection->Font->Bold = true;
  109.  
  110. // left - 7
  111. // top - 8
  112. // bottom - 9
  113. // right - 10
  114. // vertical - 11
  115. // horizontal - 12
  116. for ($i = 7; $i <= 11; $i++) {
  117. $excel->Selection->Borders($i)->LineStyle = 1;
  118. $excel->Selection->Borders($i)->Weight = 2;
  119. $excel->Selection->Borders($i)->ColorIndex = -4105;
  120. }
  121. }
  122.  
  123. $cols = array(1=>"A", "B", "C", "D", "E", "F", "G");
  124.  
  125. $row = 1;
  126. $col = 2;
  127. $printareas = array();
  128.  
  129. foreach ($data as $obl) {
  130. $inrow = $row;
  131. addHeader($inrow);
  132. $inrow++;
  133. foreach ($obl["obshtini"] as $ob) {
  134. $sheet->Cells($inrow,$col)->value = $ob["name"];
  135. $excel->Range($cols[$col+1].$inrow)->Select;
  136. $excel->Selection->NumberFormat = '# ##0';
  137. $sheet->Cells($inrow,$col+1)->FormulaR1C1 = $ob["base"];
  138. $excel->Range($cols[$col+2].$inrow)->Select;
  139. $excel->Selection->NumberFormat = '# ##0';
  140. $sheet->Cells($inrow,$col+2)->FormulaR1C1 = $ob["voters"];
  141. $excel->Range($cols[$col+3].$inrow)->Select;
  142. $excel->Selection->NumberFormat = '0,000';
  143. $sheet->Cells($inrow,$col+3)->FormulaR1C1 = (float) $ob["percent"];
  144. $inrow++;
  145. }
  146. $excel->Range($cols[1].($row+1).":".$cols[1].$inrow)->Select;
  147. $excel->Selection->Merge;
  148. $excel->Selection->VerticalAlignment = -4108;
  149. $excel->Selection->HorizontalAlignment = -4108;
  150. $excel->Selection->Orientation = 45;
  151. $excel->Selection->WrapText = true;
  152. $excel->Selection->Font->Bold = true;
  153. $excel->Selection->Font->Size = 11;
  154. $sheet->Cells($row+1,1)->value = $obl["obl_name"];
  155.  
  156. $excel->Range($cols[3].$inrow)->Select;
  157. $excel->Selection->NumberFormat = '# ##0';
  158. $sheet->Cells($inrow,3)->FormulaR1C1 = $obl["base"];
  159. $excel->Range($cols[4].$inrow)->Select;
  160. $excel->Selection->NumberFormat = '# ##0';
  161. $sheet->Cells($inrow,4)->FormulaR1C1 = $obl["voters"];
  162. $excel->Range($cols[5].$inrow)->Select;
  163. $excel->Selection->NumberFormat = '0,000';
  164. $sheet->Cells($inrow,5)->FormulaR1C1 = (float) $obl["percent"];
  165.  
  166. $excel->Range($cols[3].$inrow.":".$cols[5].$inrow)->Select;
  167. $excel->Selection->Font->Bold = true;
  168.  
  169. $excel->Range($cols[1].$row.":".$cols[5].$inrow)->Select;
  170. for ($i = 7; $i <= 12; $i++) {
  171. $excel->Selection->Borders($i)->LineStyle = 1;
  172. $excel->Selection->Borders($i)->Weight = 2;
  173. $excel->Selection->Borders($i)->ColorIndex = -4105;
  174. }
  175.  
  176. $excel->Range($cols[2].$inrow)->Select;
  177. $excel->Selection->Borders(7)->LineStyle = -4142;
  178.  
  179. $row = $inrow + 2;
  180. }
  181.  
  182. $excel->Range("A1:A1")->Select;
  183.  
  184. $strPath = dirname(__FILE__).'\generated.xls';
  185. // save the new file
  186. if (file_exists($strPath)) {unlink($strPath);}
  187. $wkb->SaveAs($strPath);
  188.  
  189. //close the book
  190. $wkb->Close(false);
  191. $excel->Workbooks->Close();
  192.  
  193. //free up the RAM
  194. unset($sheet);
  195.  
  196. //closing excel
  197. $excel->Quit();
  198.  
  199. //free the object
  200. $excel = null;
  201.  
  202. echo "Generation completed OK<br />\n";
  203. unlink ("started");
  204. ?>
Add Comment
Please, Sign In to add comment