2010-06-01 15:55:17| 日常工作中,因為并不是所有的系統(tǒng)都支持導出excel格式數據,為了方便計算或統(tǒng)計,有時會需要將表格格式,即以制表符做邊框的文本文件導入excel中。Excel提供了利用分隔符分列和手工分列的工具。對于以某一種符號分隔的文本文件,可以很容易的判斷并分列導入成格式規(guī)范的格式,但對于上述制表符做邊框的文本文件的格式轉換則需要手工調整。通過編寫程序可以實現上述類型文件的自動分列和轉換,但在不會編程的情況下該如何解決?下面提供幾種轉換方式,供討論:
假設我們需要將帶邊框的文本文件轉換為excel格式,文件名為1.txt。 1、仍然使用“導入外部數據”中選擇分隔符的方法。區(qū)別是以粘貼復制的文本文件中的“|”代替直接輸入“|”。如果直接在“導入向導”對話框“分隔符號”中用shift+“|”輸入“|”,excel是無法找到的,因為文本中其格式為“ | ”,即“|”實際上占用了一個漢字的位置,為英文狀態(tài)下2個字節(jié),這種格式在手工輸入分隔符號時是無法輸入的。解決方法是在文本文件中復制“ | ”,然后在對話框里以“ctrl+v”快捷鍵粘貼(注意,不支持鼠標左鍵粘貼)。這樣excel就會將“|”作為分列符號,規(guī)范的將文本文件分列導入。 無論那種導入方式,表頭都會被分割到幾列里面,但手工將其調整即可 2、文本替換法,即先將文本文件中的制表符通過“替換”功能替換為空或空格或其他字符,然后再導入。 先打開1.txt,首先復制表格的上邊框,點擊“編輯”->“替換”,在對話框中“查找內容”位置以右鍵或“ctrl+v”粘貼,“替換為”框中不輸,即替換為空值,確認。 依次復制下邊框和其他格式制表符,最后保存或另存。在excel中導入新格式文件,選擇手工分列或以你替換的符號為分列符,分列即可。 3、手工分列和excel中替換 在空excel表中執(zhí)行導入外部數據命令,數據源選擇1.txt,確認,出現導入向導對話框,選擇“固定寬度”->“下一步”,excel會自動給出分列線,但這種情況下都不在想要的位置上,需要手工調整,雙擊取消分列線,在豎邊框位置單擊建立新的分列線,“下一步”到最后確認。 這樣分出的列中,單元格內容包含了制表符,需要使用“替換”功能去掉。方法和2差不多,先在單元格里復制制表符,再在“替換”對話框中以“ctrl+v”粘貼(不支持右鍵粘貼),替換為空值,確認。 4、手工分列 這是最簡單的方法。 前段操作同3。分列時要注意將手工分列線放在豎邊框兩側,也就是將豎邊框單獨分一列。這樣導入之后豎邊框會被分割在單獨一列中,將其刪除即可。 幾個特殊的問題處理: 1、方法1中只能選擇一種分隔符,如果有框線為加粗的“|”,需要在導入后用方法3的操作去掉。 2、如果是導入的某列中全部為賬號,注意將其選為文本格式,否則全部以科學計數法顯示。 3、如果是導入的某列中全部為賬號,而且?guī)Я酥票矸?,如?nbsp;“000000666003800001234 |”,因為賬號的有效數字超過了11位,此時如果使用“替換”命令,excel會自動將替換后的結果以科學計數法顯示。此時我們可以使用函數和輔助列的方法。 假設a1為上述賬號,步驟: (1) 任選一空列,或插入一空列,假設在a列右側插入一列則為b列。 (2) 在b1中輸入以下公式:“=left(a1,len(a1)-1)”,意思為:從a1字符串的左側取長度為字符串總長度減去1的文本。這樣仍然會以文本的方式顯示賬號。如果制表符在賬號右側,則使用right()。 (3) 選中b1,“復制”,在原位置粘貼,選“選擇性粘貼”->“數值”->“確認”,然后刪除a1。整列操作同。 Left()為左取函數,right()為右取函數,len()為字符串長度函數,具體見excel幫助或有關書籍。 4、 橫框的處理。橫的邊框會被分在同一行里,對我們來說是沒用的,需要刪除。最簡單的方法是使用加輔助列后排序功能。 步驟:(1)插入或選一空列,如a列。A1=1,a2=2,然后填充至最后 (2)選導入內容的任一單元格,排序,把排到一起的制表符行刪除 (3)選a列任一單元格,按升序排列,恢復原來順序 |
|