kura2yamato

Excel 006 Security

May 31st, 2021 (edited)
345
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.95 KB | None | 0 0
  1. <?php
  2. use PhpOffice\PhpSpreadsheet\Spreadsheet;
  3. use PhpOffice\PhpSpreadsheet\IOFactory;
  4. /*
  5. Bagian ini silahkan anggap tidak ada..
  6. karena dasarnya ini include composer (autoload.php)
  7. */
  8. {
  9.     $paths = [
  10.         __DIR__ . '/../vendor/autoload.php', // In case PhpSpreadsheet is cloned directly
  11.         __DIR__ . '/../../../autoload.php', // In case PhpSpreadsheet is a composer dependency.
  12.         __DIR__ . '/../../../web/example/vendor/autoload.php' //memakai ini
  13.     ];
  14.  
  15.     foreach ($paths as $path) {
  16.         if (file_exists($path)) {
  17.             require_once $path;
  18.             //echo "run:$path";
  19.             ;
  20.         }
  21.     }
  22.  
  23.  
  24.    
  25. }
  26.  
  27.  
  28. function sCellPos($row,$col)
  29. {
  30.     //hanya untuk A-Z (26)
  31.     //$p=ord('A');//65
  32.     $rowInt=64+$row;
  33.     $p=chr($rowInt).$col;
  34.     return $p;
  35. }
  36.  
  37. //echo sCellPos(1,2);echo sCellPos(2,2);echo sCellPos(4,2);
  38. //die();
  39. ?>
  40. <!--
  41. /**
  42. ##INFO##
  43. {"title":"excel Dasar ","detail":"Membuat excel menggunakan PHP Spreadsheet . Memanfaatkan Lock, kunci untuk buka dan posisi ditentukan dengan fungsi bukan huruf.<br>terbatas hanya A-Z"}
  44. ##INFO##
  45. **/
  46. -->
  47. <?php
  48. $spreadsheet = new Spreadsheet();
  49.  
  50. $spreadsheet->setActiveSheetIndex(0)
  51.     ->setCellValue(sCellPos(1,2), 'Hello')
  52.     ->setCellValue(sCellPos(2,2), 'world!')
  53.     ->setCellValue(sCellPos(3,1), 'Hello')
  54.     ->setCellValue(sCellPos(4,2), 'world!')
  55.     ->setCellValue(sCellPos(5,5), date("Y-m-d H:i:s"));
  56.    
  57. $spreadsheet->getActiveSheet()
  58.     ->setTitle('Simple');
  59.  
  60. //not working???
  61. $spreadsheet->getSecurity()->setLockWindows(false);
  62. $spreadsheet->getSecurity()->setLockStructure(true);
  63. $spreadsheet->getSecurity()->setWorkbookPassword('php2021');
  64.  
  65. $spreadsheet->getActiveSheet()->getProtection()->setPassword('php2021');
  66. $spreadsheet->getActiveSheet()->getProtection()->setSheet(true); // This should be enabled in order to enable any of the following!
  67. $spreadsheet->getActiveSheet()->getProtection()->setSort(true);
  68. $spreadsheet->getActiveSheet()->getProtection()->setInsertRows(true);
  69. $spreadsheet->getActiveSheet()->getProtection()->setFormatCells(true);
  70.  
  71.  
  72.  
  73.  
  74. //properties
  75. $spreadsheet->getProperties()->setCreator('Gunawan Wibisono')
  76.     ->setLastModifiedBy('Scripter PHP')
  77.     ->setTitle('Learn Document part 2')
  78.     ->setSubject('Office 2007 XLSX Learn Document')
  79.     ->setDescription('membuat dokumen Office 2007 XLSX, memanfaatkan Lock.')
  80.     ->setKeywords('office 2007 openxml php')
  81.     ->setCategory('php excel native');
  82.    
  83. /*
  84. Pada Bagian ini disarankan simpan ke folder dahulu
  85. sebelum mengeluarkan..
  86. atau di download
  87. */
  88. $file='contoh006.xlsx';
  89.  
  90. header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
  91. header('Content-Disposition: attachment;filename="'.$file.'"');
  92. header('Content-Length: ' . filesize($file));
  93.  
  94. header('Content-Transfer-Encoding: binary');
  95. header('Cache-Control: must-revalidate');
  96. header('Pragma: public');
  97.  
  98. ob_clean();
  99. flush();
  100.  
  101. $writer = IOFactory::createWriter($spreadsheet, 'Xlsx');
  102. $writer->save($file);
  103.  
  104. $str=file_get_contents($file);
  105.  
  106. die($str);
  107.  
Add Comment
Please, Sign In to add comment