bearchu
|
發表於 2006-4-13 03:16 AM |
|
shiuh
|
發表於 2006-4-12 05:55 PM |
因為我這一陣子會很忙 我沒辦法再幫你寫東西...我把一些相關寫法給你 你自己搞定一下..
這些我是用VB的寫法
(這邊是宣告)
Dim curWorkBook As New Workbook
Dim curSheet As New Worksheet
Dim SheetNAME As String
(這邊是開Excel檔及開啟第一頁面)
Set curWorkBook = Application.Workbooks.Open(FileName:="路徑及檔名", UpdateLinks:=0, ReadOnly:=False)
SheetNAME = curWorkBook.Worksheets.Item(1).name
Set curSheet = curWorkBook.Worksheets(SheetNAME)
curSheet.Visible = True
(讀出A1的值)
AllNumber = curSheet.Range("A1").Value
相對的你也可以這樣寫..
(把cowcolumn欄的東西..這邊你要自己先定義 可以用迴圈跑..A1.A2.A3..這樣.. 一整行 或一整列的東西讀出來...讀到cowcolumnnumber中....)
cowcolumnnumber = curSheet.Range(cowcolumn).Value
讀出來之後要做啥??當然是要比對字元數夠不夠...我用17個做個範例,並且在後面加上空格..
temp = cowcolumnnumber
If Len(cowcolumnnumber) < 17 Then
For I = Len(cowcolumnnumber) To 17 Step 1
temp= temp& " "
Next I
End If
(比對完了當然要把資料放回去嘛....)
cowcolumnnumber =temp
好了 我比完了 該把資料放回去了 放到剛剛的地方去
curSheet.Range(cowcolumn).Value = cowcolumnnumber
(今天大爺無聊..順便把行列大小自動排一下...)
curSheet.Columns.AutoFit
curSheet.Rows.AutoFit
全都比完了 該是存檔了吧...
curWorkBook.Save
真的不好意思 這些資料希望對你有幫助....
我隨手key一下 可能有點小亂 看不懂再提問 不過我不一定有辦法很快回答了..忙....
[shiuh 在 2006-4-12 06:07 PM 作了最後編輯]
| |
dlc007
|
發表於 2006-4-12 04:54 PM |
引用: 再來用程式去跑....除非你能讀出 XLS 檔案...
否則無用,因為TXT轉入Excel 還是會把空格吃掉
看你要不要問問神童吧
VB及ASP等都能讀出XLS檔案或是寫成XLS檔案
很多公司在導入ERP等商業軟體或是在做資料轉換時都會針對這類的需求去開發這類的程式
另外不知道版主大大是否真的需要轉換成excel檔?
或是只需要把檔案分開, 好讓其他程式能成功判斷及讀取?
| |
terry
|
發表於 2006-4-12 04:33 PM |
的確,excel 會自己把空格去掉
剛發現了一些小問題
第一, 如果要替換, 不可以用這個"~"符號,excel會找不到資料 可以用 "#" 或者英文字母試試看
再來希望你的資料空格不是在結尾處
======================================
確實補空格很簡單, 難的是, 要補給個空格? 要在哪補空格?
或許會說, 那就加判斷式, 那這樣是否變成在寫程式呢?
======================================
判斷是必要的
隨者需求的不同,下的判斷當然不同
所以寫個萬用的很難
剛才想了一下,就算是用 Script 或者程式也沒辦法
如果再excel內用script的
原理是吧儲存格的長度讀出來然後再決定補幾個空格
但是有個空格補前面還是補後面的問題沒有Flag很難判斷
再來用程式去跑....除非你能讀出 XLS 檔案...
否則無用,因為TXT轉入Excel 還是會把空格吃掉
看你要不要問問神童吧
[terry 在 2006-4-12 04:41 PM 作了最後編輯]
| |
dlc007
|
發表於 2006-4-12 04:08 PM |
引用: 雖說寫程式很簡單,但是要寫個萬用的轉換有點麻煩
但是不是每一個人都會寫程式,會寫程式的也沒辦法每次都這樣幫忙
活用工具即可
這只是針對某種特殊需求的程式, 即使萬用的轉換也不太可能可以達到每次不同的需求
會寫程式的確實沒辦法每次都這樣幫忙, 所以得靠工具
但是當工具無法達到需求的時候呢?
引用: 補空格很簡單啊
吧讀出來的字串 加一個空格寫回去就好了
確實補空格很簡單, 難的是, 要補給個空格? 要在哪補空格?
或許會說, 那就加判斷式, 那這樣是否變成在寫程式呢?
引用: 但不會寫程式,就只好腦筋靈活點善用工具了
非常同意..單純修改文字檔的內容, 有很多好用的工具..
尤其ultraedit等工具可以做到的事就很多
| |
dlc007
|
發表於 2006-4-12 04:04 PM |
引用: 因為他的最終文檔是excel而不是text File
所以如果excel會把空白消掉,那怎麼轉,都沒用的
這樣的話用固定長度就能讀出所要的資料喔
而版主之前後來補充的問題是
引用: 如
123456789
123 789
匯入成 A及 B 兩欄
A B
123456 789
而第二列之A欄想匯成 123+"3個空白格"
但是實際匯成123而已 後面3個空白格無匯入
| |
terry
|
發表於 2006-4-12 02:43 PM |
引用: dlc007寫到:
引用: terry寫到:
其實用替換功能吧空格全部轉為某一個資料中沒有用到的特定符號
然後再轉入excel
最後在excel中吧特定符號替換回空格就好了
[terry 在 2006-4-11 12:20 PM 作了最後編輯]
其實這種方法我之前就想過, 也試過..
當然是可以成功轉換, 可是如果要轉換的字元是在結尾,
那結尾的字元在excel會被消除不會補空白喔..
這也是我說的為什麼需要靠程式來做了..
excel會自動把結尾為空白都給消除, 不管是從script,
或是開檔選固定長度, 甚至是取代的功能都會這樣..
如果是excel無論如何把結尾的空白消除
那一點意義也沒有
因為他的最終文檔是excel而不是text File
所以如果excel會把空白消掉,那怎麼轉,都沒用的
如果TEXT File 每行的尾巴必須空白,意思ㄧ樣,倒過來轉換即可
雖說寫程式很簡單,但是要寫個萬用的轉換有點麻煩
但是不是每一個人都會寫程式,會寫程式的也沒辦法每次都這樣幫忙
活用工具即可
另外, 這跟釣竿雖然不是一隻好的釣竿,但是是可以完成任務的釣竿
補空格很簡單啊
吧讀出來的字串 加一個空格寫回去就好了
Do while TextFile Not EOF
My_Str = TextFile 中 讀出來的字串
My_Str = My_Str & " "
寫入 My_Str
Loop
多簡單
但不會寫程式,就只好腦筋靈活點善用工具了
| |
dlc007
|
發表於 2006-4-12 02:25 PM |
引用: terry寫到:
其實用替換功能吧空格全部轉為某一個資料中沒有用到的特定符號
然後再轉入excel
最後在excel中吧特定符號替換回空格就好了
[terry 在 2006-4-11 12:20 PM 作了最後編輯]
其實這種方法我之前就想過, 也試過..
當然是可以成功轉換, 可是如果要轉換的字元是在結尾,
那結尾的字元在excel會被消除不會補空白喔..
這也是我說的為什麼需要靠程式來做了..
excel會自動把結尾為空白都給消除, 不管是從script,
或是開檔選固定長度, 甚至是取代的功能都會這樣..
| |
bearchu
|
發表於 2006-4-12 01:28 PM |
謝謝各位大大
尤其是shiuh大大的幫助
最後terry大大點破迷思.....
| |
shiuh
|
發表於 2006-4-11 12:29 PM |
|
本主題回覆較多,請 點擊這裡 檢閱。 |