Model_excel.php 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429
  1. <?php
  2. class Model_Excel extends Lin_Model {
  3. function __construct(){
  4. parent::__construct();
  5. }
  6. public function get_fz($info_list,$titlename,$filename,$tail,$ts=0)
  7. {
  8. $str = "<html xmlns:x=\"urn:schemas-microsoft-com:office:excel\">
  9. <head>
  10. <!--[if gte mso 9]><xml>
  11. <x:ExcelWorkbook>
  12. <x:ExcelWorksheets>
  13. <x:ExcelWorksheet>
  14. <x:Name>EXCEL</x:Name>
  15. <x:WorksheetOptions>
  16. <x:Print>
  17. <x:ValidPrinterInfo />
  18. </x:Print>
  19. </x:WorksheetOptions>
  20. </x:ExcelWorksheet>
  21. </x:ExcelWorksheets>
  22. </x:ExcelWorkbook>
  23. </xml>
  24. <![endif]-->
  25. </head><body>";
  26. $str .= $titlename;
  27. $str .= "<table border=1 style='font-family: Microsoft Yahei;font-size: 13px;'>";
  28. foreach ($info_list as $key=>$value)
  29. {
  30. if($value['fpdata'] == '')
  31. {
  32. continue;
  33. }
  34. $str .= "<tr>";
  35. foreach ($value as $ke=>$va)
  36. {
  37. if($ke == 'shipremarks')
  38. {
  39. $va = str_replace(array('<','>'),array('&lt;','&gt;'),$va);
  40. }
  41. if($ke == 'orderinfo' || $ke == 'waybill')
  42. {
  43. $str .= "<td align='left' style='vnd.ms-excel.numberformat:@'>".$va."</td>";
  44. }
  45. else if($ke != 'fpdata' && $ke != 'hl' && $ke != 'currencytitle')
  46. {
  47. $str .= "<td align='left'>".$va."</td>";
  48. }
  49. }
  50. $str .= "<td><table border=1>";
  51. $a = 0;
  52. foreach ($value['fpdata'] as $k=>$v)
  53. {
  54. $vd = '';
  55. foreach ($v as $vv)
  56. {
  57. $vd .= "<td>".$vv."</td>";
  58. }
  59. $str .= "<tr>".$vd."</tr>";
  60. $endv = is_numeric(end($v))?end($v):0;
  61. $a = $a + $endv;
  62. }
  63. $str .= "</table></td>";
  64. if($ts != 1)
  65. {
  66. $str .= "<td>".$a."</td>";
  67. }
  68. $str .= "</tr>\n";
  69. }
  70. $str .= $tail;
  71. $str .= "</table></body></html>";
  72. header( "Content-Type: application/vnd.ms-excel; name='excel'" );
  73. header( "Content-type: application/octet-stream" );
  74. header( "Content-Disposition: attachment; filename=".$filename );
  75. header( "Cache-Control: must-revalidate, post-check=0, pre-check=0" );
  76. header( "Pragma: no-cache" );
  77. header( "Expires: 0" );
  78. exit($str);
  79. //return $str;
  80. }
  81. public function get_fz2($info_list,$titlename,$filename,$tail)
  82. {
  83. $str = "<html xmlns:x=\"urn:schemas-microsoft-com:office:excel\">
  84. <head>
  85. <!--[if gte mso 9]><xml>
  86. <x:ExcelWorkbook>
  87. <x:ExcelWorksheets>
  88. <x:ExcelWorksheet>
  89. <x:Name>EXCEL</x:Name>
  90. <x:WorksheetOptions>
  91. <x:Print>
  92. <x:ValidPrinterInfo />
  93. </x:Print>
  94. </x:WorksheetOptions>
  95. </x:ExcelWorksheet>
  96. </x:ExcelWorksheets>
  97. </x:ExcelWorkbook>
  98. </xml>
  99. <![endif]-->
  100. </head><style>.excel-text {
  101. mso-number-format:'\@';
  102. vnd.ms-excel.numberformat:@;
  103. }</style><body>";
  104. $str .= $titlename;
  105. $str .= "<table border=1 style='font-family: Microsoft Yahei;font-size: 13px;'>";
  106. foreach ($info_list as $key=>$value)
  107. {
  108. $str .= "<tr>";
  109. foreach ($value as $ke=>$va)
  110. {
  111. $tj = '';
  112. /**
  113. if($ke == 'phone' || $ke == 'waybill')
  114. {
  115. $tj = '&nbsp;';
  116. }
  117. if($ke == 'orderinfo' || $ke == 'zipcode'|| $ke == 'paypal'|| $ke == 'rpaypal')
  118. {
  119. $str .= "<td align='left' style='vnd.ms-excel.numberformat:@'>".$va."</td>";//使用文本格式
  120. }
  121. else if($ke != 'fpdata' && $ke != 'hl' && $ke != 'currencytitle')
  122. {
  123. $str .= "<td align='left' style='vnd.ms-excel.numberformat:@'>".$tj.trim($va,' ')."</td>"; //.$tj.$va.
  124. }
  125. **/
  126. //文本:vnd.ms-excel.numberformat:@
  127. //日期:vnd.ms-excel.numberformat:yyyy/mm/dd
  128. //数字:vnd.ms-excel.numberformat:#,##0.00
  129. //货币:vnd.ms-excel.numberformat:¥#,##0.00
  130. //百分比:vnd.ms-excel.numberformat: #0.00%
  131. if($ke == 'shipremarks')
  132. {
  133. $va = str_replace(array('<','>'),array('&lt;','&gt;'),$va);
  134. }
  135. if($ke == 'shouldmoney' || $ke == 'freight' || $ke == 'expressmoney' || $ke == 'budget' || $ke == 'cost' || $ke == 'refundy' || $ke == 'refundj')
  136. {
  137. $str .= "<td align='left'>".$va."</td>";//使用文本格式
  138. }
  139. else if($ke == 'ts' || $ke == 'zsbjz')
  140. {
  141. $str .= "<td align='left' style='vnd.ms-excel.numberformat:0'>".$va."</td>";
  142. }
  143. else if($ke == 'zzl')
  144. {
  145. $str .= "<td align='left' style='vnd.ms-excel.numberformat:#,##0.00'>".$va."</td>";
  146. }
  147. else if($ke != 'fpdata' && $ke != 'hl' && $ke != 'currencytitle' || $ke == 'orderinfo')
  148. {
  149. $str .= "<td align='left' style='vnd.ms-excel.numberformat:@'>".trim($va,' ')."\t"."</td>"; //.$tj.$va.
  150. }
  151. }
  152. $str .= "</tr>\n";
  153. }
  154. $str .= $tail;
  155. $str .= "</table></body></html>";
  156. header( "Content-Type: application/vnd.ms-excel; name='excel'" );
  157. header( "Content-type: application/octet-stream" );
  158. header( "Content-Disposition: attachment; filename=".$filename );
  159. header( "Cache-Control: must-revalidate, post-check=0, pre-check=0" );
  160. header( "Pragma: no-cache" );
  161. header( "Expires: 0" );
  162. exit($str);
  163. //return $str;
  164. }
  165. public function get_fz2_bc($info_list,$titlename,$filename,$tail)
  166. {
  167. $str = "<html xmlns:x=\"urn:schemas-microsoft-com:office:excel\">
  168. <head>
  169. <!--[if gte mso 9]><xml>
  170. <x:ExcelWorkbook>
  171. <x:ExcelWorksheets>
  172. <x:ExcelWorksheet>
  173. <x:Name>EXCEL</x:Name>
  174. <x:WorksheetOptions>
  175. <x:Print>
  176. <x:ValidPrinterInfo />
  177. </x:Print>
  178. </x:WorksheetOptions>
  179. </x:ExcelWorksheet>
  180. </x:ExcelWorksheets>
  181. </x:ExcelWorkbook>
  182. </xml>
  183. <![endif]-->
  184. </head><body>";
  185. $str .= $titlename;
  186. $str .= "<table border=1 style='font-family: Microsoft Yahei;font-size: 13px;'>";
  187. foreach ($info_list as $key=>$value)
  188. {
  189. $str .= "<tr>";
  190. foreach ($value as $ke=>$va)
  191. {
  192. $tj = '';
  193. /**
  194. if($ke == 'phone' || $ke == 'waybill')
  195. {
  196. $tj = '&nbsp;';
  197. }
  198. if($ke == 'orderinfo' || $ke == 'zipcode'|| $ke == 'paypal'|| $ke == 'rpaypal')
  199. {
  200. $str .= "<td align='left' style='vnd.ms-excel.numberformat:@'>".$va."</td>";//使用文本格式
  201. }
  202. else if($ke != 'fpdata' && $ke != 'hl' && $ke != 'currencytitle')
  203. {
  204. $str .= "<td align='left' style='vnd.ms-excel.numberformat:@'>".$tj.trim($va,' ')."</td>"; //.$tj.$va.
  205. }
  206. **/
  207. //文本:vnd.ms-excel.numberformat:@
  208. //日期:vnd.ms-excel.numberformat:yyyy/mm/dd
  209. //数字:vnd.ms-excel.numberformat:#,##0.00
  210. //货币:vnd.ms-excel.numberformat:¥#,##0.00
  211. //百分比:vnd.ms-excel.numberformat: #0.00%
  212. if($ke == 'shipremarks')
  213. {
  214. $va = str_replace(array('<','>'),array('&lt;','&gt;'),$va);
  215. }
  216. if($ke == 'shouldmoney' || $ke == 'freight' || $ke == 'expressmoney' || $ke == 'budget' || $ke == 'cost' || $ke == 'refundy' || $ke == 'refundj')
  217. {
  218. $str .= "<td align='left'>".$va."</td>";//使用文本格式
  219. }
  220. else if($ke == 'ts' || $ke == 'zsbjz')
  221. {
  222. $str .= "<td align='left' style='vnd.ms-excel.numberformat:0'>".$va."</td>";
  223. }
  224. else if($ke == 'zzl')
  225. {
  226. $str .= "<td align='left' style='vnd.ms-excel.numberformat:#,##0.00'>".$va."</td>";
  227. }
  228. else if($ke != 'fpdata' && $ke != 'hl' && $ke != 'currencytitle' || $ke == 'orderinfo')
  229. {
  230. if(is_string($va))
  231. {
  232. $str .= "<td align='left' style='vnd.ms-excel.numberformat:@'>".trim($va,' ')."\t"."</td>"; //.$tj.$va.
  233. }
  234. }
  235. }
  236. $str .= "</tr>\n";
  237. }
  238. $str .= $tail;
  239. $str .= "</table></body></html>";
  240. return $str;
  241. }
  242. public function get_fz3($info_list,$titlename,$filename,$tail)
  243. {
  244. $str = "<html xmlns:x=\"urn:schemas-microsoft-com:office:excel\">
  245. <head>
  246. <!--[if gte mso 9]><xml>
  247. <x:ExcelWorkbook>
  248. <x:ExcelWorksheets>
  249. <x:ExcelWorksheet>
  250. <x:Name>EXCEL</x:Name>
  251. <x:WorksheetOptions>
  252. <x:Print>
  253. <x:ValidPrinterInfo />
  254. </x:Print>
  255. </x:WorksheetOptions>
  256. </x:ExcelWorksheet>
  257. </x:ExcelWorksheets>
  258. </x:ExcelWorkbook>
  259. </xml>
  260. <![endif]-->
  261. </head><body>";
  262. $str .= $titlename;
  263. $str .= "<table border=1 style='font-family: Microsoft Yahei;font-size: 13px;'>";
  264. foreach ($info_list as $key=>$value)
  265. {
  266. $str .= "<tr>";
  267. foreach ($value as $k=>$v)
  268. {
  269. if($k == 'shipremarks')
  270. {
  271. $v = str_replace(array('<','>'),array('&lt;','&gt;'),$v);
  272. }
  273. $str .= "<td align='left' style='vnd.ms-excel.numberformat:@'>".$v."</td>";
  274. }
  275. $str .= "</tr>\n";
  276. }
  277. $str .= $tail;
  278. $str .= "</table></body></html>";
  279. return $str;
  280. //return $str;
  281. }
  282. public function get_fz5($info_list,$titlename,$filename,$tail,$kong)//带空项
  283. {
  284. $str = "<html xmlns:x=\"urn:schemas-microsoft-com:office:excel\">
  285. <head>
  286. <!--[if gte mso 9]><xml>
  287. <x:ExcelWorkbook>
  288. <x:ExcelWorksheets>
  289. <x:ExcelWorksheet>
  290. <x:Name>EXCEL</x:Name>
  291. <x:WorksheetOptions>
  292. <x:Print>
  293. <x:ValidPrinterInfo />
  294. </x:Print>
  295. </x:WorksheetOptions>
  296. </x:ExcelWorksheet>
  297. </x:ExcelWorksheets>
  298. </x:ExcelWorkbook>
  299. </xml>
  300. <![endif]-->
  301. </head><body>";
  302. $str .= $titlename;
  303. $str .= "<table border=1 style='font-family: Microsoft Yahei;font-size: 13px;'>";
  304. foreach ($info_list as $key=>$value)
  305. {
  306. $str .= "<tr>";$i=0;
  307. foreach ($kong as $k=>$a)
  308. {
  309. array_splice($value,$k,0,'');
  310. }
  311. foreach ($value as $ke=>$va)
  312. {
  313. $tj = '';
  314. /**
  315. if($ke == 'phone' || $ke == 'waybill')
  316. {
  317. $tj = '&nbsp;';
  318. }
  319. if($ke == 'orderinfo' || $ke == 'zipcode'|| $ke == 'paypal'|| $ke == 'rpaypal')
  320. {
  321. $str .= "<td align='left' style='vnd.ms-excel.numberformat:@'>".$va."</td>";//使用文本格式
  322. }
  323. else if($ke != 'fpdata' && $ke != 'hl' && $ke != 'currencytitle')
  324. {
  325. $str .= "<td align='left' style='vnd.ms-excel.numberformat:@'>".$tj.trim($va,' ')."</td>"; //.$tj.$va.
  326. }
  327. **/
  328. //文本:vnd.ms-excel.numberformat:@
  329. //日期:vnd.ms-excel.numberformat:yyyy/mm/dd
  330. //数字:vnd.ms-excel.numberformat:#,##0.00
  331. //货币:vnd.ms-excel.numberformat:¥#,##0.00
  332. //百分比:vnd.ms-excel.numberformat: #0.00%
  333. if($ke == 'shipremarks')
  334. {
  335. $va = str_replace(array('<','>'),array('&lt;','&gt;'),$va);
  336. }
  337. if($ke == 'shouldmoney' || $ke == 'freight' || $ke == 'expressmoney' || $ke == 'budget' || $ke == 'cost' || $ke == 'refundy' || $ke == 'refundj')
  338. {
  339. $str .= "<td align='left'>".$va."</td>";//使用文本格式
  340. }
  341. else if($ke == 'ts')
  342. {
  343. $str .= "<td align='left' style='vnd.ms-excel.numberformat:0'>".$va."</td>";
  344. }
  345. else if($ke == 'zsbjz' || $ke == 'dtsbjz' || $ke == 'insurance')
  346. {
  347. $str .= "<td align='left' style='vnd.ms-excel.numberformat:#,##0.00'>".$va."</td>";
  348. }
  349. else if($ke == 'zjs' || $ke == 'ts')
  350. {
  351. $str .= "<td align='left' style='vnd.ms-excel.numberformat:#,##'>".$va."</td>";
  352. }
  353. else if($ke == 'zzl' || $ke == 'jweight' || $ke == 'weight')
  354. {
  355. if($ke == 'weight')
  356. {
  357. $va = trim($va,'kg');
  358. }
  359. $str .= "<td align='left' style='vnd.ms-excel.numberformat:#,##0.00'>".$va."</td>";
  360. }
  361. else if($ke != 'hl' && $ke != 'currencytitle' || $ke == 'orderinfo')
  362. {
  363. $str .= "<td align='left' style='vnd.ms-excel.numberformat:@'>".trim($va,' ')."\t"."</td>";
  364. }
  365. $i++;
  366. }
  367. $str .= "</tr>\n";
  368. }
  369. $str .= $tail;
  370. $str .= "</table></body></html>";
  371. header( "Content-Type: application/vnd.ms-excel; name='excel'" );
  372. header( "Content-type: application/octet-stream" );
  373. header( "Content-Disposition: attachment; filename=".$filename );
  374. header( "Cache-Control: must-revalidate, post-check=0, pre-check=0" );
  375. header( "Pragma: no-cache" );
  376. header( "Expires: 0" );
  377. exit($str);
  378. //return $str;
  379. }
  380. public function get_fz6($info_list,$titlename,$filename)
  381. {
  382. $str = "<html xmlns:x=\"urn:schemas-microsoft-com:office:excel\">
  383. <head>
  384. <!--[if gte mso 9]><xml>
  385. <x:ExcelWorkbook>
  386. <x:ExcelWorksheets>
  387. <x:ExcelWorksheet>
  388. <x:Name>EXCEL</x:Name>
  389. <x:WorksheetOptions>
  390. <x:Print>
  391. <x:ValidPrinterInfo />
  392. </x:Print>
  393. </x:WorksheetOptions>
  394. </x:ExcelWorksheet>
  395. </x:ExcelWorksheets>
  396. </x:ExcelWorkbook>
  397. </xml>
  398. <![endif]-->
  399. </head><body>";
  400. $str .= $titlename;
  401. $str .= "<table border=1 style='font-family: Microsoft Yahei;font-size: 13px;'><tr>";
  402. foreach ($info_list as $key=>$value)
  403. {
  404. $str .= "<td><table border=0>";
  405. foreach ($value as $ke=>$va)
  406. {
  407. if($ke == 'shipremarks')
  408. {
  409. $va = str_replace(array('<','>'),array('&lt;','&gt;'),$va);
  410. }
  411. $str .= "<tr><td>".$va[0]."</td><td style='vnd.ms-excel.numberformat:@'>".$va[1]."</td></tr>";
  412. }
  413. $str .= "</table></td>\n";
  414. }
  415. $str .= "</tr></table></body></html>";
  416. header( "Content-Type: application/vnd.ms-excel; name='excel'" );
  417. header( "Content-type: application/octet-stream" );
  418. header( "Content-Disposition: attachment; filename=".$filename );
  419. header( "Cache-Control: must-revalidate, post-check=0, pre-check=0" );
  420. header( "Pragma: no-cache" );
  421. header( "Expires: 0" );
  422. exit($str);
  423. //return $str;
  424. }
  425. } //end class