TestSpreadsheet.php 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. <?php
  2. use PHPUnit\Framework\TestCase;
  3. define('APP_ID', 'test');
  4. define('BASE_ROOT_PATH', str_replace('/test', '', dirname(__FILE__)));
  5. require_once(BASE_ROOT_PATH . '/global.php');
  6. require_once(BASE_CORE_PATH . '/lrlz.php');
  7. require_once(BASE_ROOT_PATH . '/fooder.php');
  8. Log::record('1',Log::DEBUG);
  9. require_once(BASE_ROOT_PATH . '/vendor/autoload.php');
  10. require_once(BASE_HELPER_PATH . '/bank/execl_loader.php');
  11. require_once(BASE_HELPER_PATH . '/bank/converter.php');
  12. Log::record('2',Log::DEBUG);
  13. //use PhpOffice\PhpSpreadsheet\Spreadsheet;
  14. //use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
  15. //
  16. // Strangely, PHP doesn't have a mb_str_replace multibyte function
  17. // As we'll only ever use this function with UTF-8 characters, we can simply "hard-code" the character set
  18. //
  19. if ((!function_exists('mb_str_replace')) &&
  20. (function_exists('mb_substr')) && (function_exists('mb_strlen')) && (function_exists('mb_strpos'))) {
  21. function mb_str_replace($search, $replace, $subject) {
  22. if(is_array($subject)) {
  23. $ret = array();
  24. foreach($subject as $key => $val) {
  25. $ret[$key] = mb_str_replace($search, $replace, $val);
  26. }
  27. return $ret;
  28. }
  29. foreach((array) $search as $key => $s) {
  30. if($s == '') {
  31. continue;
  32. }
  33. $r = !is_array($replace) ? $replace : (array_key_exists($key, $replace) ? $replace[$key] : '');
  34. $pos = mb_strpos($subject, $s, 0, 'UTF-8');
  35. while($pos !== false) {
  36. $subject = mb_substr($subject, 0, $pos, 'UTF-8') . $r . mb_substr($subject, $pos + mb_strlen($s, 'UTF-8'), 65535, 'UTF-8');
  37. $pos = mb_strpos($subject, $s, $pos + mb_strlen($r, 'UTF-8'), 'UTF-8');
  38. }
  39. }
  40. return $subject;
  41. }
  42. }
  43. class TestSpreadsheet extends TestCase
  44. {
  45. public static function setUpBeforeClass() : void
  46. {
  47. Base::run_util();
  48. }
  49. public function testLoad()
  50. {
  51. $spreadsheet = new PhpOffice\PhpSpreadsheet\Spreadsheet();
  52. $sheet = $spreadsheet->getActiveSheet();
  53. $sheet->setCellValue('A1', 'Hello World !');
  54. $writer = new PhpOffice\PhpSpreadsheet\Writer\Xlsx($spreadsheet);
  55. $writer->save('hello world.xlsx');
  56. }
  57. public function testReadSheet()
  58. {
  59. // $paths = [BASE_DATA_PATH . '/log/国研银行/2021.04.1.xls', BASE_DATA_PATH . '/log/椰子银行'];
  60. // $file = BASE_DATA_PATH . '/log/国研银行/2021.04.1.xls';
  61. // $file = BASE_DATA_PATH . '/log/椰子银行/椰子建行2020-06月.xls';
  62. // $file = BASE_DATA_PATH . '/log/国研银行/国研交行2021-11月.xls';
  63. // $file = BASE_DATA_PATH . '/log/国研银行/国研浦发2021-09月.xls';
  64. // $file = BASE_DATA_PATH . '/log/国研银行/国研招行2021-10月.xlsx';
  65. // $file = BASE_DATA_PATH . '/log/椰子银行/2021.11汇付宝付款明细单据数据导出.xls';
  66. // $file = BASE_DATA_PATH . '/log/椰子银行/椰子建行2021-05月.xls';
  67. // $path = BASE_DATA_PATH . '/log/国研银行'; //'国研交行21-22.xls','国研浦发银行明细账2109-2202.xls','椰子招行2021-04月.xlsx','国研招行21-2202.xlsx'
  68. Log::set_level(Log::WARING);
  69. Log::enable_sql(false);
  70. $path = BASE_DATA_PATH . '/log/椰子银行';
  71. $files = ['椰子招行2021-06月.xlsx'];
  72. $loader = new bank\execl_loader();
  73. foreach ($files as $file) {
  74. $file = $path . '/' . $file;
  75. $loader->load_file($file);
  76. }
  77. }
  78. //docker-compose run -d phpcli php /var/www/html/phpunit-9.2.5.phar --filter "/(TestSpreadsheet::testLoadDir)( .*)?$/" --test-suffix TestSpreadsheet.php /var/www/html/test
  79. public function testLoadDir()
  80. {
  81. $dir = BASE_DATA_PATH . '/log';
  82. $loader = new bank\execl_loader();
  83. $loader->load_dir($dir);
  84. }
  85. public function testFloat()
  86. {
  87. $val = '430,143.46';
  88. // $x = floatval($val);
  89. // $x = money_format($val);
  90. $x = mb_str_replace(',','',$val);
  91. }
  92. public function testReadMoney()
  93. {
  94. // $money_read = function ($val)
  95. // {
  96. // $val = trim($val);
  97. // if($val[0] == '¥') {
  98. // $amount = 0;
  99. // }
  100. //
  101. // };
  102. //
  103. // $left = mb_str_replace('¥','','¥1.00');
  104. // $val = $money_read('¥1.00');
  105. }
  106. }