台灣最大程式設計社群網站
線上人數
917
 
會員總數:246135
討論主題:189716
歡迎您免費加入會員
討論區列表 >> PHP >> 請教前輩們大量資料輸出列印的問題..
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
請教前輩們大量資料輸出列印的問題..
價值 : 30 QP  點閱數:1496 回應數:11
樓主

小高
初學者
350 22
520 92
發送站內信

請教前輩們

MYSQL 中一個資料表有近百萬筆資料,要如何讓它能用最快的方式輸出列印套在報表上呢

目前在下是用limit分批,以html格式輸出成word.doc套在報表格式,但要分超......多次

有人說輸出成.TXT檔,但TXT不能套表列印....

救教前輩們的經驗...

本篇文章發表於2012-12-01 14:46
1樓
最有價值解答

那顆爛蔥
捐贈 VP 給 那顆爛蔥 檢舉此回應
可能以後我也會遇到這種狀況
所以找了一下...

你能夠產生word檔嘛,那就用迴圈方式,幾頁一個檔,或者乾脆一頁一個檔都無所謂
然後配合BAT批次檔的迴圈
http://tw.knowledge.yahoo.com/question/question?qid=1612010206944
把某個特定目錄裡的檔案都印出來...

不過記得要在印每個檔案前先想辦法delay一下
比如去找個執行檔SLEEP.EXE一類的
不然近千甚至上萬個檔案,會把電腦搞死...
本篇文章回覆於2012-12-03 11:09
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
不錯的參考

浩瀚星空
捐贈 VP 給 浩瀚星空 檢舉此回應
近百萬筆的資料列印來說,本身就是一種很錯誤的做法制度。
我們先不說程式的應用問題。先來說說最單純的實際問題。

首先要了解的是,其所列印出來的資料,其印表機是否可以承受。光紙張就是一個問題。
就算是早期的捲軸式印表紙來說,這些資料可能也不是一箱就可以印完的。

更不要說目前單張紙的印表方式。你光要一直換紙就是一個問題。PHP不會等你換紙的,只能利用其它程式來處理。

再來就是這些資料,有誰會去看啊。

最後再來說說程式問題。

無論轉換成WORD也好,XML也好或是TXT也好。你認為這樣大容量的資料。有幾個編輯器能開的起來呢??
因為我是過來人,所以我了解。當初我也是建立成WORD。也是為了列印問題。
我是解決的檔案建立的問題。產生了一個約200MB的WORD檔。
但悲劇發生了,WORD開不了這個檔,因為容量太大了。WORD根本就承載不住。

最後我還是乖乖的用日期去區分建立一個檔案。

所以~~~你也不用想該如何去建立這樣一個檔案,因為後續的問題你也解決不了。
我可以告訴你怎麼去建立一個這樣的檔案。利用排程或是後端命令的方式去建立。
這樣可以一次就能建立出來。但.........
本篇文章回覆於2012-12-03 11:21
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
作者回應

小高
檢舉此回應
回二位大大
在下知道一次LOAD 七八十萬筆不管是那一台電腦都會掛掉~所以作了limit區分1~1W、1W01~2W....

蔥大建議可以來研究一下

因為我現在是手動查詢筆數後輸出WORD檔....

另外請教 星空大大 XML和WORD、同樣輸出一萬筆資料為一個檔,那一種檔案比較小呢...
因為我有試著輸出成html格式,它和WORD檔一樣大,只是比較好開,缺點套表會跑....
本篇文章回覆於2012-12-03 13:05
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
回應

那顆爛蔥
捐贈 VP 給 那顆爛蔥 檢舉此回應
偏偏就是有蠢蛋級的老闆會印這近百萬筆的東西
然後叫會計去查 :Q (苦笑中...



老闆,不就專門搞沒人要用的東西?然後又說很重要?然後自己卻不用?
本篇文章回覆於2012-12-03 18:00
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
作者回應

小高
檢舉此回應
蔥大 給你一個大大的 讚....
本篇文章回覆於2012-12-03 19:24
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
回應

浩瀚星空
捐贈 VP 給 浩瀚星空 檢舉此回應
我之前做這東西就是老闆要求。
我好說歹說就是不信。

我就真的做出來,然後整台主機差點掛掉。
要看報表開不起來。我只跟他說你要用超級電腦看,看看能否開的起來。
本篇文章回覆於2012-12-04 09:19
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
回應

浩瀚星空
捐贈 VP 給 浩瀚星空 檢舉此回應
正常來說,你不可能真正的去產生WORD的檔案。
PHP大多是利用HTML標頭的特性去產生一個可供WORD辨識用的偽WORD檔。還是算純文字檔。

正規來說,依照XML還有額外的標簽來看,XML的容量會比較大才對。
不過我現在是採用線上作業的方式。然後只下載資源檔。(免得資料遺失)

本篇文章回覆於2012-12-04 09:26
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
作者回應

小高
檢舉此回應
回 星空 大大

小小員工只能照老闆要求作....

如蔥大講的老闆都想出一些五四三,自己又沒在看的東西...

PHP產生應該都是HTML的偽WORD檔吧,word在下還沒發現像PHPExcel這樣可以匯出.XLS檔再匯入資料庫的工具...

上作業的方式...老闆要把那一大堆資料套表印出來,在下也沒法子....
本篇文章回覆於2012-12-04 13:58
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
9樓
回應

浩瀚星空
捐贈 VP 給 浩瀚星空 檢舉此回應
呵~~~~放心,我也是過來人。
老闆完全不理會你的困難的。

反正你就產生給他看看,然後看他能不能開起來。
至於他如果開不起來還會來唸你的話。你就直接說,那你的電腦RAM加到16G看看能不能開。
開啟速度慢。那你就叫他找一個COPY 200MB可以秒開的機器。

我之前就是這樣電我家的BOSS。他也是硬要凹我。我就這樣跟他說。你有辦法找這樣的機器出來。就能秒開。
本篇文章回覆於2012-12-05 09:43
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
10樓
作者回應

小高
檢舉此回應
哈哈...

星空大大這招好用哦....

電BOSS都不用怕被炒掉
本篇文章回覆於2012-12-05 15:13
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
11樓
回應

浩瀚星空
捐贈 VP 給 浩瀚星空 檢舉此回應
炒~~

我還真希望他真的能炒我。
不過我跟我BOSS其實平常就很像是朋友,工作上雖然會硬凹。但有時我也會講理給他聽。

要知道,先天上的問題並非是你可以處理的,

就像是要求車子能飛起來。
這是一個非常無理的要求,但不是不能做到。(老闆就是會用這樣的理由凹)。

所以我一般大部份的做法,我還是會去想可以做到的方式,再來就是要求硬軟體的支援或是人力支援。
再把問題還回去給BOSS。
(對呀,我可以做到啊,但你要給我這些硬體才能做到啊,要不然鬼才有辦法做到)

最近我公司也發生一件事,客戶要增加一個非常無理的要求。我也跟BOSS說了,這要求不難,但很容易發生人為性的錯誤。
他只跟我說客戶要求就是要這樣做。我也做給他了。果然如我所預期的,被一大堆其它的用戶給罵了。
本篇文章回覆於2012-12-06 12:29
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.