台灣最大程式設計社群網站
線上人數
1374
 
會員總數:231557
接案會員:6791
文章總數:1904
討論主題:179142
歡迎您免費加入會員
討論區列表 >> VB.NET >> TXT轉EXCEL問題(已爬文)
[變換順序]
[我要回覆]
1


回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
TXT轉EXCEL問題(已爬文)
價值 : 50 QP  點閱數:4991 回應數:5

樓主

dimitri
門外漢
0 3
122 6
發送站內信

請問一下

如果我要把記事本檔案轉成excel的話

但是分隔每筆資料的方法不是用,或是空白

而是用位子(座標)來分

例如:

AAA 11111 22222 33333
BB 4444 55555 666
CCCC 777 8888 99999

像第一個欄位AAA就是從1~5位 11111就是6-14位 22222就是15~23位...
每行的位子都會一樣

我現在只會把每個欄位用空白隔開轉成excel檔 每欄長度不一樣

所以會變成EXCEL有很多空白欄位

我想用位子來切System.IO.StreamReader所讀到的資料寫到excel裡面

請問有人可以幫忙解答嗎

另外我有爬了文

好像大部分的人都是建立一張新的excel檔案

如果是要從已經設計好的excel檔 把欄位從記事本檔案丟進去

請要怎麼設定相關參數呢

謝謝

感激不進
本篇文章發表於2008-11-20 16:54
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
作者回應

dimitri
檢舉此回應
我舉的例子位子有跑掉 再打一次

AAA______11111____22222____33333
BB________4444____55555______666
CCCC_______777_____8888____99999

應該像這樣

謝謝



本篇文章回覆於2008-11-20 17:35
--未登入的會員無法查看對方簽名檔--
2樓
回應

阿戊
檢舉此回應
你新po的文內 _ (底線) 的數量也都不對吧?!
要更容易處理的話...建議你的每一段資料間要加上分隔符號 ; 如vbatb或,(逗號)...反正就是找一個你不可能用到的符號用!
這樣之後要拆開會更容易些,程式碼也可以少寫些
如果是vbatb或逗號 甚至就直接改為.csv...excel開檔時就能直接分格了!

本篇文章回覆於2008-11-20 23:33
--未登入的會員無法查看對方簽名檔--
3樓
作者回應

dimitri
檢舉此回應
恩 阿戊 謝謝你的回答

新PO文的 C 又跑掉了
因為資料的關係
所以沒辦法用符號區隔

後來我發現
可以用SubString 來切割
但現在又遇到新問題了

就是因為這個指令中 不管是中文還是英文所佔的位子都是1

一段程式碼中

Dim strCells1 As String = strLine.Substring(0, 16)
Dim strCells2 As String = strLine.Substring(16, 21)

原先預定11-16 都是給單位名稱
但是因為單位名稱有些是 五個中文字 有些是四個中文字

像是

台北區內湖 5000
北縣板橋 8000

因為第一筆 多了一個湖字就比空白字元再多一個字元
strCells1 切割時就會產生誤差了

請問有人知道如何解決嗎

謝謝





本篇文章回覆於2008-11-25 15:53
--未登入的會員無法查看對方簽名檔--
4樓
最有價值解答

vb菜鳥
檢舉此回應
你可以使用Bytes的方式,一個中文字是二個bytes,數字及字母符號是一個Bytes

範例如下,參考看看



本篇文章回覆於2008-11-27 10:34
--未登入的會員無法查看對方簽名檔--
5樓
作者回應

dimitri
檢舉此回應

後來我用判斷的方式
AAA如果是3個字元就用一種擷取方法
AA如果是2個字元就用另一種擷取方法

VB菜鳥謝謝你的回答喔:)

本篇文章回覆於2008-12-28 16:20
--未登入的會員無法查看對方簽名檔--
[變換順序]
1
 

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