台灣最大程式設計社群網站
線上人數
840
 
會員總數:245973
討論主題:189551
歡迎您免費加入會員
討論區列表 >> VB.NET >> VB.NET 增加放入到excel的速度與效率
[]  
[我要回覆]
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
VB.NET 增加放入到excel的速度與效率
價值 : 200 QP  點閱數:2247 回應數:43
樓主

SU
門外漢
0 6
174 32
發送站內信

各位大大 我現在datagridview上面已經有資料匯進來,我是寫一個抓取特定的格式將datagridview的資料匯入到excel裡面去作公式運算
可以請教一下各位大大如何增加其放入到excel工作表表的速度 下面程式的迴圈速度有點慢

舉例: 現在datagridview的資料量是1800筆但是經過下面程式執行 需要15分鐘才跑 完有點久~

之後要放入5萬筆的資料,所以可能1800筆15分鐘有點久

不知道各位大大有沒有什麼方法可以加快其匯入的速度



搜尋相關Tags的文章: [ DataGridView ] , [ VB ] , [ EXCEL ] ,
本篇文章發表於2018-12-26 11:48
16樓
回應

P陳
檢舉此回應
您目前告知的寫法。就如您發文的寫法一樣,速度一定很慢,有建議您用CSV的寫法。
但在 #12 時您說 用CSV 也是很慢
個人想說不太可能,就測了一下,65000 筆,只要5秒就解決了
#14時我測 用CSV 只要5秒以內而己 每筆有23個欄位
-------------------------------------

建議您改用 CSV 模式來寫,並請PO出CSV寫法的程式,有問題時再來討論,這樣我們才能知您那堨d住了
本篇文章回覆於2019-01-15 14:54
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
17樓
回應

P陳
檢舉此回應
知道您的問題點了
不是直接開 Excel
1.讀入文字檔到 Datatable
2.將資料丟給 DataGridview
3.開CSV檔 (這是文字檔) test1.csv
4.將datagridview 的資料寫入 test1.csv 完成後關閉

5.開 excel 讀入 test1.csv <--- 現在才開 excel
寫法 Process.Start("text1.csv")
本篇文章回覆於2019-01-15 15:01
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
18樓
作者回應

SU
檢舉此回應
好的我再試試感謝
本篇文章回覆於2019-01-15 17:13
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
19樓
作者回應

SU
檢舉此回應
請問可以做個範例供參考嗎
本篇文章回覆於2019-01-16 10:14
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
20樓
作者回應

SU
檢舉此回應
你好 我的文字檔txt 丟給 datagridview 是用openfiledialog1的方式去尋找去放進去的
因為我的文字檔是現有的
所以不太清楚怎麼寫

以下是txt放入到datagridview上面的程式



本篇文章回覆於2019-01-16 10:47
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
21樓
回應

P陳
檢舉此回應
您不是在問如何丟出 .CSV 的嗎? 怎麼變成讀入有問題了? 不太會寫了?
本篇文章回覆於2019-01-16 20:02
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
22樓
回應

P陳
檢舉此回應
以下範例很接近您的需求了
我是用 DT1 您用 DataGridView5
6萬5千多筆 23個欄位 10秒內可以完成


本篇文章回覆於2019-01-16 20:10
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
23樓
作者回應

SU
檢舉此回應
請問大大你的 IO_OpenDtable("D200XXX主檔")要怎麼宣告
感謝指點
本篇文章回覆於2019-01-17 10:29
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
24樓
回應

P陳
檢舉此回應
那是我自己寫的副程式,您可以跳過去,
將 2~16 的程式,丟到您讀入文字檔,將資料放到 datagridview5 完成後接著作

將 DT1 改成 datagridview5
將 Datarow 改成 datagridviewrow
本篇文章回覆於2019-01-17 12:51
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
25樓
作者回應

SU
檢舉此回應


大概是這樣寫嗎

可式資料寫不進去C:\_00_FA-Weighing\TTT.csv這個裡面
我必須在設一個openfile的按鈕 然後打新的檔名譬如 RRR.csv才會在RRR.csv裡面

沒有再TTT.csv裡面

本篇文章回覆於2019-01-17 15:25
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
26樓
回應

P陳
檢舉此回應
1.有錯誤訊息嗎?

2.寫到 RRR.csv 的檔案 可否被 Excel 打開

3.先改這樣試試 (您 PO 的2~15 先不要動)
My.Computer.FileSystem.WriteAllText("C:\_00_FA-Weighing\RRR.csv", str1.ToString, False)
Process.Start("C:\_00_FA-Weighing\RRR.csv")

本篇文章回覆於2019-01-17 16:00
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
27樓
作者回應

SU
檢舉此回應
剛發現一個問題 我第一次的檔案路徑是設在HHH.csv
我把HHH.csv刪掉
後來改另一個檔案路徑叫做 PPP.csv

他說找不到HHH.csv檔案路徑
感覺好像是資料被黏住的感覺
本篇文章回覆於2019-01-17 16:02
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
28樓
作者回應

SU
檢舉此回應
我中間有刪掉一些程式
這是全部程式加大大的程式

本篇文章回覆於2019-01-17 16:04
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
29樓
作者回應

SU
檢舉此回應
我傳程式壓縮檔給您了
本篇文章回覆於2019-01-17 16:11
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
30樓
作者回應

SU
檢舉此回應
我重開新程式
發現有錯誤
第43行 For Each column1 As DataColumn In DataGridView5.Columns

錯誤: System.InvalidCastException: '無法將型別 'System.Windows.Forms.DataGridViewTextBoxColumn' 的物件轉換為型別 'System.Data.DataColumn'。'

本篇文章回覆於2019-01-17 17:39
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   

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