Advertisement
Guest User

Untitled

a guest
Dec 8th, 2016
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 5.46 KB | None | 0 0
  1.  $jsons = db_select('import_export_json', 'r')
  2.         ->fields('r')
  3.         ->orderBy('r.pid', 'ASC')
  4.         ->execute();
  5.  
  6.     set_include_path(get_include_path() . PATH_SEPARATOR . __DIR__ . '/lib/Classes');
  7. //    //ini_set('open_basedir', __DIR__.'/tmp/');
  8. //    //ini_set('open_basedir', ini_get('open_basedir').PATH_SEPARATOR.__DIR__.'/tmp/');
  9.     ini_set('open_basedir', DRUPAL_ROOT . PATH_SEPARATOR . ini_get('open_basedir') . __DIR__ . '/tmp/');
  10.     require_once 'PHPExcel.php';
  11.  
  12.     try {
  13.         $cacheMethod = PHPExcel_CachedObjectStorageFactory::cache_to_phpTemp;
  14.         $cacheSettings = array('memoryCacheSize ' => '256MB');
  15.         PHPExcel_Settings::setCacheStorageMethod($cacheMethod, $cacheSettings);
  16.  
  17.         $workbook = new PHPExcel();
  18.         $workbook->setActiveSheetIndex(0);
  19.         $worksheet = $workbook->getActiveSheet();
  20.         $worksheet->getPageSetup()->setRowsToRepeatAtTopByStartAndEnd(1, 1);
  21.         $rowNumber = 1;
  22.         // Write
  23.         $row = array(
  24.             'A' => 'RID',
  25.             'B' => 'Статус',
  26.             'C' => 'Товар(назва) (Обязательное полe)',
  27.             'D' => 'Описание',
  28.             'E' => 'Показать в новинках',
  29.             'F' => 'Показать в популярних',
  30.             'G' => 'Изображение',
  31.             'H' => 'Производитель',
  32.             'I' => 'Марка/Модель',
  33.             'J' => 'Категория',
  34.             'K' => 'Ярлыки',
  35.             'L' => 'Доставка',
  36.             'M' => 'На складе',
  37.             'N' => 'Артикул(Обязательное полe)',
  38.             'O' => 'Цена по прейскуранту',
  39.             'P' => 'Стоимость',
  40.             'Q' => 'Цена продажи(Обязательное полe)',
  41.             'R' => 'Продукт доставляемый',
  42.             'S' => 'Позиция в списке'
  43.         );
  44.         foreach ($row as $c => $v) {
  45.             $v = (string)$v;
  46.             if (strlen($v) == 0) continue;
  47.             //$v = iconv('utf-8', 'windows-1251', $v);
  48.             $sell = (string)$c;
  49.             $sell .= (string)$rowNumber;
  50.             $worksheet->setCellValue($sell, $v);
  51.         }
  52.         $rowNumber++;
  53.         $rowNumber++;
  54.         file_put_contents(__DIR__ . '/log_export.txt', 'time export: ' . date("Y-m-d H:i:s") . PHP_EOL . PHP_EOL);
  55.         foreach ($jsons as $row) {
  56.             $raw = unserialize($row->raw);
  57.             ksort($raw);
  58.             foreach ($raw as $c => $v) {
  59.                 $v = (string)$v;
  60.                 if (strlen($v) == 0) continue;
  61. //                $v = iconv('utf-8', 'windows-1251', $v);
  62.                 switch ($c) {
  63.                     case 0:
  64.                         $sell = 'A';
  65.                         break;
  66.                     case 1:
  67.                         $sell = 'B';
  68.                         break;
  69.                     case 2:
  70.                         $sell = 'C';
  71.                         break;
  72.                     case 3:
  73.                         $sell = 'D';
  74.                         break;
  75.                     case 4:
  76.                         $sell = 'E';
  77.                         break;
  78.                     case 5:
  79.                         $sell = 'F';
  80.                         break;
  81.                     case 6:
  82.                         $sell = 'G';
  83.                         break;
  84.                     case 7:
  85.                         $sell = 'H';
  86.                         break;
  87.                     case 8:
  88.                         $sell = 'I';
  89.                         break;
  90.                     case 9:
  91.                         $sell = 'J';
  92.                         break;
  93.                     case 10:
  94.                         $sell = 'K';
  95.                         break;
  96.                     case 11:
  97.                         $sell = 'L';
  98.                         break;
  99.                     case 12:
  100.                         $sell = 'M';
  101.                         break;
  102.                     case 13:
  103.                         $sell = 'N';
  104.                         break;
  105.                     case 14:
  106.                         $sell = 'O';
  107.                         break;
  108.                     case 15:
  109.                         $sell = 'P';
  110.                         break;
  111.                     case 16:
  112.                         $sell = 'Q';
  113.                         break;
  114.                     case 17:
  115.                         $sell = 'R';
  116.                         break;
  117.                     case 18:
  118.                         $sell = 'S';
  119.                         break;
  120.                 }
  121.                 $sell .= (string)$rowNumber;
  122.                 $worksheet->setCellValue($sell, $v);
  123.             }
  124.             file_put_contents(__DIR__ . '/log_export.txt', 'finish exporting tovar' .
  125.                 $rowNumber . '-----------------------------------' . PHP_EOL, FILE_APPEND);
  126.             $rowNumber++;
  127.         }
  128.         header('Content-Type: application/vnd.ms-excel,\uFEFF');
  129.         header('Content-Disposition: attachment;filename="Products.xls"');
  130.         header('Cache-Control: max-age=0');
  131.         $writer = PHPExcel_IOFactory::createWriter($workbook, 'Excel5');
  132.         $writer->save('php://output');
  133.  
  134.         file_put_contents(__DIR__ . '/log_export.txt', 'File exporting xls' . PHP_EOL . PHP_EOL, FILE_APPEND);
  135.     } catch (Exception $e) {
  136.         file_put_contents(__DIR__ . '/log_export.txt', 'Error' . $e->getMessage() . PHP_EOL, FILE_APPEND);
  137.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement