Обява

Свий
Няма добавени обяви.

Разни въпроси към WEB-аджиите...

Свий
X
 
  • Филтър
  • Час
  • Покажи
Изчисти всичко
нови мнения

  • Re: Разни въпроси към WEB-аджиите...

    Аз трябваше да го направя без пари - иначе има комерсиални библиотеки за ПХП който твърдят, че правели пълноценен ексцел. В крайна сметка аз го зарязах и си останах на ЦСВ - просто и лесно за генериране, а и го отваря всичко каквото се сетиш.

    Коментар


    • От: Re: Разни въпроси към WEB-аджиите...

      Първоначално публикуван от Daniel Преглед на мнение
      Аз трябваше да го направя без пари - иначе има комерсиални библиотеки за ПХП който твърдят, че правели пълноценен ексцел. В крайна сметка аз го зарязах и си останах на ЦСВ - просто и лесно за генериране, а и го отваря всичко каквото се сетиш.
      Случаен пример от пакета.

      Код:
      // Create new PHPExcel object
      $objPHPExcel = new PHPExcel();
      
      
      // Set document properties
      $objPHPExcel->getProperties()->setCreator("Daniel")
                                   ->setLastModifiedBy("Daniel")
                                   ->setTitle("Office 2007 XLSX Test Document")
                                   ->setSubject("Office 2007 XLSX Test Document")
                                   ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes for Daniel@Offroad-bulgaria.com")
                                   ->setKeywords("office 2007 openxml php")
                                   ->setCategory("Test result file");
      
      
      
      
      // Add some data
      $objPHPExcel->setActiveSheetIndex(0)
                  ->setCellValue('A1', 'Hello')
                  ->setCellValue('B2', 'Daniel!');
      
      
      // Rename worksheet
      $objPHPExcel->getActiveSheet()->setTitle('Daniel');
      
      
      
      
      // Set active sheet index to the first sheet, so Excel opens this as the first sheet
      $objPHPExcel->setActiveSheetIndex(0);
      
      
      
      
      // Redirect output to a client’s web browser (Excel5)
      header('Content-Type: application/vnd.ms-excel');
      header('Content-Disposition: attachment;filename="01simple.xls"');
      header('Cache-Control: max-age=0');
      // If you're serving to IE 9, then the following may be needed
      header('Cache-Control: max-age=1');
      
      
      // If you're serving to IE over SSL, then the following may be needed
      header ('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past
      header ('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); // always modified
      header ('Cache-Control: cache, must-revalidate'); // HTTP/1.1
      header ('Pragma: public'); // HTTP/1.0
      
      
      $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
      $objWriter->save('php://output');
      Перфектен бинерен файл:
      Прикачени файлове
      WG 2.7 CRD

      Коментар


      • Re: Разни въпроси към WEB-аджиите...

        Това си е библиотека и си прави пълноценен ексцел. Няма нищо общо с чистото ПХП.

        Коментар


        • От: Разни въпроси към WEB-аджиите...

          А, библиотеки за програмно генериране на Excell файлове има за C#, ама не ми трябва това. Трябва ми нещо, с корто да си направя темплейт на рипорта, и след това да го рендерва в PDF, WORD EXCEL, без да има инсталиран офис на машината.

          Днес купихме Telerik Reporting. Справя се с това, има си и редактор на темплейти. Експорта му е почти перфектен, за разлика от майкрософтската пародия. За друго освен за .Net обаче го няма.
          Интернет експлорър: Безплатно предоставян от Майкрософт тул за сваляне на браузер по избор.

          Коментар


          • От: Re: Разни въпроси към WEB-аджиите...

            Първоначално публикуван от Daniel Преглед на мнение
            Това си е библиотека и си прави пълноценен ексцел. Няма нищо общо с чистото ПХП.
            Е та нали за това говорим. Че е и фри даже. Не е ставало въпрос, че го има нейтив в пхп-то.

            А ти твърдеше:

            Аз трябваше да го направя без пари - иначе има комерсиални библиотеки за ПХП който твърдят, че правели пълноценен ексцел. В крайна сметка аз го зарязах и си останах на ЦСВ - просто и лесно за генериране, а и го отваря всичко каквото се сетиш.
            има класове колкото искаш - който правярт xls ама като го отвориш с нот пада вътре си е CSV или HTML със странни микро-софт декларации в хедъра, че е XLS.
            WG 2.7 CRD

            Коментар


            • Re: Разни въпроси към WEB-аджиите...

              Явно си търсил повече от мен И тези класове пак работят с This project is built around Microsoft's OpenXML standard.
              Спарки по назад съм ти пуснал един хмл с който можеш да си направиш темплейт и да си го напълниш с глупостите. Не знам дали ще ти върши работа.
              https://msdn.microsoft.com/en-us/lib.../bb448854.aspx

              Коментар


              • От: Re: Разни въпроси към WEB-аджиите...

                Първоначално публикуван от Daniel Преглед на мнение
                Явно си търсил повече от мен И тези класове пак работят с This project is built around Microsoft's OpenXML standard.
                Това може и да важи за xlsx файлове, но както съм показал e генериран чист бинарен xls файл
                WG 2.7 CRD

                Коментар


                • Re: От: Re: Разни въпроси към WEB-аджиите...

                  Не отричам, че работи - даже е готино. Ако ми беше попаднало когато ми трябваше със сигурност щях да го ползвам.
                  Прави точно това което трябва.

                  Даже има и екстри - форматиране, формулки - идеално е.

                  Коментар


                  • От: Re: От: Re: Разни въпроси към WEB-аджиите...

                    Я да питам и аз вазе сега. Някой има ли успешна практика с вдигането на надежден сокет сървър върху линукс/пхп?
                    WG 2.7 CRD

                    Коментар


                    • Re: Разни въпроси към WEB-аджиите...

                      Сокет съм пускал, ама колко "надежден сокет" не мога да ти кажа - до последно - преди да напусна си работеше.
                      Понеже пак нямах време и не мисля да откривам тополата вода си преработих едно ексампълче.

                      PHP Код:
                      <?php
                      error_reporting
                      (E_ALL);

                      /* Allow the script to hang around waiting for connections. */
                      set_time_limit(0);

                      /* Turn on implicit output flushing so we see what we're getting
                       * as it comes in. */
                      ob_implicit_flush();

                      $address '192.168.1.53';
                      $port 10000;

                      if ((
                      $sock socket_create(AF_INETSOCK_STREAMSOL_TCP)) === false) {
                          echo 
                      "socket_create() failed: reason: " socket_strerror(socket_last_error()) . "\n";
                      }

                      if (
                      socket_bind($sock$address$port) === false) {
                          echo 
                      "socket_bind() failed: reason: " socket_strerror(socket_last_error($sock)) . "\n";
                      }

                      if (
                      socket_listen($sock5) === false) {
                          echo 
                      "socket_listen() failed: reason: " socket_strerror(socket_last_error($sock)) . "\n";
                      }

                      do {
                          if ((
                      $msgsock socket_accept($sock)) === false) {
                              echo 
                      "socket_accept() failed: reason: " socket_strerror(socket_last_error($sock)) . "\n";
                              break;
                          }
                          
                      /* Send instructions. */
                          
                      $msg "\nWelcome to the PHP Test Server. \n" .
                              
                      "To quit, type 'quit'. To shut down the server type 'shutdown'.\n";
                          
                      socket_write($msgsock$msgstrlen($msg));

                          do {
                              if (
                      false === ($buf socket_read($msgsock2048PHP_NORMAL_READ))) {
                                  echo 
                      "socket_read() failed: reason: " socket_strerror(socket_last_error($msgsock)) . "\n";
                                  break 
                      2;
                              }
                              if (!
                      $buf trim($buf)) {
                                  continue;
                              }
                              if (
                      $buf == 'quit') {
                                  break;
                              }
                              if (
                      $buf == 'shutdown') {
                                  
                      socket_close($msgsock);
                                  break 
                      2;
                              }
                              
                      $talkback "PHP: You said '$buf'.\n";
                              
                      socket_write($msgsock$talkbackstrlen($talkback));
                              echo 
                      "$buf\n";
                          } while (
                      true);
                          
                      socket_close($msgsock);
                      } while (
                      true);

                      socket_close($sock);
                      ?>
                      Идеята беше да се рестартират едни сървиси на линукса.

                      Коментар


                      • От: Re: Разни въпроси към WEB-аджиите...

                        Първоначално публикуван от Daniel Преглед на мнение
                        Сокет съм пускал, ама колко "надежден сокет" не мога да ти кажа - до последно - преди да напусна си работеше.
                        Понеже пак нямах време и не мисля да откривам тополата вода си преработих едно ексампълче.

                        PHP Код:
                        <?php
                        error_reporting
                        (E_ALL);

                        /* Allow the script to hang around waiting for connections. */
                        set_time_limit(0);

                        /* Turn on implicit output flushing so we see what we're getting
                         * as it comes in. */
                        ob_implicit_flush();

                        $address '192.168.1.53';
                        $port 10000;

                        if ((
                        $sock socket_create(AF_INETSOCK_STREAMSOL_TCP)) === false) {
                            echo 
                        "socket_create() failed: reason: " socket_strerror(socket_last_error()) . "\n";
                        }

                        if (
                        socket_bind($sock$address$port) === false) {
                            echo 
                        "socket_bind() failed: reason: " socket_strerror(socket_last_error($sock)) . "\n";
                        }

                        if (
                        socket_listen($sock5) === false) {
                            echo 
                        "socket_listen() failed: reason: " socket_strerror(socket_last_error($sock)) . "\n";
                        }

                        do {
                            if ((
                        $msgsock socket_accept($sock)) === false) {
                                echo 
                        "socket_accept() failed: reason: " socket_strerror(socket_last_error($sock)) . "\n";
                                break;
                            }
                            
                        /* Send instructions. */
                            
                        $msg "\nWelcome to the PHP Test Server. \n" .
                                
                        "To quit, type 'quit'. To shut down the server type 'shutdown'.\n";
                            
                        socket_write($msgsock$msgstrlen($msg));

                            do {
                                if (
                        false === ($buf socket_read($msgsock2048PHP_NORMAL_READ))) {
                                    echo 
                        "socket_read() failed: reason: " socket_strerror(socket_last_error($msgsock)) . "\n";
                                    break 
                        2;
                                }
                                if (!
                        $buf trim($buf)) {
                                    continue;
                                }
                                if (
                        $buf == 'quit') {
                                    break;
                                }
                                if (
                        $buf == 'shutdown') {
                                    
                        socket_close($msgsock);
                                    break 
                        2;
                                }
                                
                        $talkback "PHP: You said '$buf'.\n";
                                
                        socket_write($msgsock$talkbackstrlen($talkback));
                                echo 
                        "$buf\n";
                            } while (
                        true);
                            
                        socket_close($msgsock);
                        } while (
                        true);

                        socket_close($sock);
                        ?>
                        Идеята беше да се рестартират едни сървиси на линукса.
                        Мдам. Класика. Мен ме интересува нещо изпитано, което да кажем, да го достъпват 10к у-ва/ден, много от тях едноврмеменно, по няколко пъти. И при нужда да свалят по 1-2Мб.
                        WG 2.7 CRD

                        Коментар


                        • Re: Разни въпроси към WEB-аджиите...

                          Същия казус го имахме - около 4000 девайса правеха запис през около 10 секунди и пишеха в една база - написахме сокетите на джава и да си призная много рядко се налагаше да се рестартира - да речем веднъж на няколко месеца. Аз написах ПХП клиент за да може да се ресетват от УЕБ. Не знам дали съм прав, но за сокети бих предпочел някакъв компилант отколкото ПХП.

                          Коментар


                          • От: Re: Разни въпроси към WEB-аджиите...

                            Първоначално публикуван от Daniel Преглед на мнение
                            Това е едното, което имах предвид. На мен ми трябваше обаче пълноценен report енджин, понеже експортите от това:
                            https://msdn.microsoft.com/en-us/lib...(v=vs.90).aspx

                            към всичко, различно от PDF, са тотална боза.
                            Темплейтите се правят с това:
                            https://msdn.microsoft.com/en-us/library/dd220460.aspx

                            и си ги записва в негов си XML файл. Като искаш да експортнеш нещо, зареждаш XML файла с темплейта в LocalReport класа, пускаш му данни програмно, казваш му към какво да рендерне, и то ти връща готовия PDF/XLS/DOC файл. Само дето XLS и DOC файла не мязат на нищо. Репорт енджина на Телерик е горе-долу еквивалент на майкрософтското, ама с тая разлика че Word файла е едно към едно с PDF-а. Тоест, ако експортнеш нещо към Word, после го принтнеш към PDF, и сравниш тоя PDF с директно експортнатия от рипорт енджина, те изглеждат почти еднакво.

                            Просто нямам време да си напиша мой. Ако имах свободни 2-3 месеца щях, ама на фона на това време, което нямам, 1000-та кинта за телерикския изглеждат премлив вариант.
                            Интернет експлорър: Безплатно предоставян от Майкрософт тул за сваляне на браузер по избор.

                            Коментар


                            • Re: Разни въпроси към WEB-аджиите...

                              Ако ти го пишеш, ще излезе по скъпо. Странно написано изглежда много добре.
                              Последно редактирано от Daniel; 27-02-15, 17:50.

                              Коментар


                              • От: Re: Разни въпроси към WEB-аджиите...

                                Първоначално публикуван от Daniel Преглед на мнение
                                Ако ти го пишеш, ще излезе по скъпо.
                                Именно тая сметка си направихме.
                                Интернет експлорър: Безплатно предоставян от Майкрософт тул за сваляне на браузер по избор.

                                Коментар

                                Активност за темата

                                Свий

                                В момента има 1 потребители онлайн. 0 потребители и 1 гости.

                                Най-много потребители онлайн 8,787 в 16:37 на 21-06-23.

                                Зареждам...
                                X