Board logo

標題: [發問] 請問工作表匯出成txt後,資料內容有多出雙引號問題 [打印本頁]

作者: pesi2884    時間: 2011-7-24 18:04     標題: 請問工作表匯出成txt後,資料內容有多出雙引號問題

請求幫助解答問題~~
請問工作表匯出成txt,然後打開匯出的txt檔
資料內容為什麼有多出雙引號
如下二列文字,最前面及最後面都有雙引號
"<Placemark><name>景點1</name><Point><coordinates>120.1,23.1,0</coordinates></Point></Placemark>"
"<Placemark><name>景點2</name><Point><coordinates>120.2,23.2,0</coordinates></Point></Placemark>"
在excel檔本來沒有的
請問如何讓匯出的txt檔不要有雙引號
如下二列文字
<Placemark><name>景點1</name><Point><coordinates>120.1,23.1,0</coordinates></Point></Placemark>
<Placemark><name>景點2</name><Point><coordinates>120.2,23.2,0</coordinates></Point></Placemark>
附上附件
謝謝!
作者: infoverdad    時間: 2011-7-24 19:32

回復 1# pesi2884

顯然是因為你同一格中的資料有","號
因為excel 可轉為csv格式 各格之間就是以","號區隔的
試著將你第一格(A1)中的","號都改成"#"號 (A2則不改)
則以notepad 讀出的結果如下:
<Placemark><name>???I1</name><Point><coordinates>120.1#23.1#0</coordinates></Point></Placemark>
"<Placemark><name>???I2</name><Point><coordinates>120.2,23.2,0</coordinates></Point></Placemark>"
作者: GBKEE    時間: 2011-7-24 21:12

回復 1# pesi2884
如infoverdad 說你字串有逗號","  可試用下法存為txt
  1. Sub Ex()
  2.     Dim i%, FileName
  3.     FileName = "D:\TEST\1000724.txt"       '建立檔案名稱。"
  4.     Open FileName For Output As #1      '開啟檔案。
  5.     Do While Cells(i + 1, "A") <> ""
  6.         Print #1, Cells(i + 1, "A")     '將字串寫入檔案。"
  7.         i = i + 1
  8.     Loop
  9.     Close #1                            ' 將檔案關閉。
  10. End Sub
複製代碼

作者: pesi2884    時間: 2011-7-24 21:41

回復 3# GBKEE


謝謝GBKEE您的回答,有達到想要的結果
但是我因為有許多相同資料類型的(有上百個)工作表
要存成許多(有上百個)檔案
假設附件內有3個工作表,分別為 雲林~中美、高雄~墾丁、屏東~嘉義
那如何匯出成分別為 雲林~中美.txt、高雄~墾丁.txt、屏東~嘉義.txt
請問該要怎麼寫,不好意思,我的程式語言能力還很弱
所以需要您的幫忙,謝謝你呀!
作者: GBKEE    時間: 2011-7-24 21:48

回復 4# pesi2884
試試看
  1. Sub Ex()
  2.     Dim Sh As Worksheet, FileName As String, i%
  3.     For Each Sh In Sheets
  4.         FileName = "D:\"       '建立檔案資料夾"
  5.         Open FileName & Sh.Name & ".txt" For Output As #1    '開啟檔案。
  6.         i = 1
  7.         Do While Sh.Cells(i, "A") <> ""
  8.             Print #1, Sh.Cells(i, "A")      '將字串寫入檔案。"
  9.             i = i + 1
  10.         Loop
  11.         Close #1                            ' 將檔案關閉。
  12.     Next
  13. End Sub
複製代碼

作者: pesi2884    時間: 2011-7-24 22:12

回復 5# GBKEE


謝謝版主!
可以了
作者: pesi2884    時間: 2011-7-24 22:31

回復 5# GBKEE

不好意思,再問一下
承剛剛版主大大您的回覆程式裡
如果匯出的檔案要有以下的格式
FileFormat:=xlUnicodeText, CreateBackup:=False
程式該如何寫
因為要的成果,與檔案格式有關,謝謝
作者: GBKEE    時間: 2011-7-25 07:03

回復 7# pesi2884
  1. Sub Ex()
  2.     Dim Fs As Object
  3.     Dim Sh As Worksheet, FileName As String, i%
  4.     For Each Sh In Sheets
  5.        FileName = "D:\"       '建立檔案資料夾"
  6.         Set Fs = CreateObject("Scripting.FileSystemObject").OpenTextFile(FileName & Sh.Name & ".txt", 8, True, -1)
  7.         'FileSystemObject物件,提供對電腦檔案系統的存取。 OpenTextFile  開啟檔案.
  8.         '8 -> ForAppending:  開啟一個檔案並寫輸出至檔案的尾部。1 -> ForReading:開啟一個唯讀檔案。無法對此檔案進行寫入。
  9.         'True: 它表示如果指定的 filename 不存在是否可以建立一個開新檔案。如果建立開新檔案,其值為 True。若不建立檔案其值為 False。預設值為 False。
  10.         '-1 以 Unicode 格式開啟檔案。如果省略,則檔案以 ASCII 格式開啟。
  11.         
  12.         'Set Fs = CreateObject("Scripting.FileSystemObject").CreateTextFile(FileName & Sh.Name & ".txt", True, True)
  13.         'CreateTextFile  新建檔案,
  14.         '第1個 True: 表示一個已存在檔案是否可被覆蓋。如果可被覆蓋其值為 True,其為 False 時無法覆蓋,預設值為False.
  15.         '第2個 True: 。如果作為一個 Unicode 檔案建立,其為 True,作為一個 ASCII 檔案建立,其為 False。預設值為False
  16.         i = 1
  17.         Do While Sh.Cells(i, "A") <> ""
  18.             Fs.Write Sh.Cells(i, "A")      '將字串寫入底端。"
  19.             Fs.WriteLine                    '換行
  20.             i = i + 1
  21.         Loop
  22.         Fs.Close                             ' 將檔案關閉。
  23.     Next
  24. End Sub
複製代碼

作者: pesi2884    時間: 2011-7-25 08:51

回復 8# GBKEE


    謝謝版主,試過後可以了,非常感恩。




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)