題 如何在美國版本的Excel中打開以分號分隔的CSV文件


當我雙擊.csv文件時,它在Excel中打開。 csv文件的列以分號分隔(不是逗號,也是有效格式)。

使用德語Windows / Excel設置,正確顯示打開的文件,列分隔csv文件中存在分號的位置。

但是當我在(美國)英語Windows / Excel設置上執行相同操作時,只導入一列,顯示整個數據,包括第一列中的分號。
(我沒有可用於測試的英語設置,用戶已報告該行為)

我試圖在Windows區域設置中更改列表分隔符值,但這並沒有改變任何東西。

如果能夠在英語設置上雙擊打開這些CSV文件,我該怎麼辦?

編輯:
在這種情況下,似乎是不依賴CSV文件的最佳解決方案。我希望CSV文件有一些格式可以在國際上使用它們。
最好的解決方案似乎是我將切換到創建XLS文件。


85
2017-08-26 13:02


起源


您可以推薦您的用戶使用 LibreOffice Calc  - 它可以處理任意分隔符的CSV。 - naught101


答案:


那些文件是分發的?下載?本地生成?

我認為在不訪問用戶PC的情況下解決您的問題的獨特方式,如果沒有他不必對文件進行“雙擊”操作,就是在解析或下載或生成文件之前將文件轉換為.xls一個.xls(或其他可用的格式)而不是.csv文件。您可以使用腳本或使用工作Excel手動執行此操作,具體取決於文件​​數量和生成方式。


2
2017-08-26 18:42



是的,我認為這是直接創建XLS文件的最佳方式。我希望CSV文件有一些格式化,使它們在國際上可用,但如果不可能,XLS文件無論在哪裡都可以工作。 - Holgerwa
這怎麼回答正確,沒用。 - Stevie G


在CSV文件的第一行添加:

sep=;

要么

sep=,

這將覆蓋系統設置(“列表分隔符”),Excel將正確打開文件。


179
2018-05-03 10:46



+1在2010年的excel中做到了這一點並且完美無缺。 - N Reed
是否列出其他此類設置?告訴Excel使用,因為小數分隔符通常伴隨著告訴它使用;作為列分隔符。 - ZweiBlumen
適用於Excel,但請注意,其他電子表格或數據程序可能不支持此功能。它可能只是一個小問題,只是顯示額外的第一行 sep= 要么 sep=; 在其中,但一些自動程序或腳本可能不會期望額外的第一行,導致列標題或 sep=; 行本身被解釋為實際數據。 - Sygmoral
小心這個。如果您在Excel中保存,它將: - 刪除分隔符的規範 - 使用區域設置分隔符保存 - Bjinse
可以確認 fwrite($fileHandle, 'sep=,' . "\r\n"); 完全解決了這個問題 fputcsv 用PHP。 - h2ooooooo


您可以使用文本導入嚮導。這個 才不是 雙擊打開工作,但是我能想到的最好不涉及搞亂語言設置。

在Excel 2003中轉到 Data  - > Import External Data  - > Import Data 在菜單欄上(不能說它在2007年的位置,我現在還沒有那個)。查找並選擇您的CSV文件。

當它打開時,你得到了 Text Import Wizard,允許您指定要使用的分隔符。


26
2017-08-26 13:29



在Outlook 2007上,進入“數據”選項卡並選擇列,然後單擊“數據工具”集上的“文本到列”按鈕。 - Hondalex
是的,這是一個解決方案。不幸的是,需要查看數據的用戶不願意這樣做。他們可以處理“雙擊打開”,但不能做任何更複雜的事情。我們試圖教育他們至少一點點,但他們拒絕。 - Holgerwa
@Holgerwa - 是否可以在將文件提供給用戶之前通過某種轉換過程運行文件?或者他們是否需要保持分號分隔?其他人已經提出了這個建議,但使用某種腳本將半冒號換成逗號應該相當容易(我建議不要使用簡單的查找/替換,因為你不想在引號內轉換它們)。 - DMA57361


看到這篇文章:
使用Excel打開CSV文件有問題?由於歐洲的區域設置,Excel中的逗號和分號問題

哪個提供3個解決方案

  • 將CSV文件擴展名更改為TXT(當您使用Excel打開TXT文件時,它將啟動文本文件導入嚮導,您可以在其中選擇分隔符)
  • 將所有“,”替換為CSV文件中的“;”
  • 更改您的區域和語言設置

由於您只更改了Windows區域設置中的列表分隔符值,因此我注意到文章說要輸入“。” Decimal Symbol 和“,” List Separator

如果您對VBA感到滿意,請參閱:

在Excel 2000中使用VBA打開分號分隔的CSV文件
使用Excel導出和導入文本


5
2017-08-26 13:28



我同意,所有有效選項,但不幸的是,我與這些CSV文件的用戶不一樣。 .TXT-import不起作用(請參閱我對DMA57361的回答的評論),用逗號替換分號將因小數分隔符問題而無效,並且更改區域設置將無法正常工作,因為我無法訪問使用的電腦。用戶只需雙擊文件,如果他們沒有得到他們的期望,他們會抱怨並拒絕幫助解決問題。 - Holgerwa
@Holgerwa:如果您不控制用戶PC,那麼您無能為力。因為我的另一個建議是將.csv擴展名的處理程序更改為您自己的程序,這將更正(但智能)分隔符並調用Excel。 - harrymc
@Holgerwa:請注意我上面關於區域設置的編輯。 - harrymc


我嘗試過的最好方法是將您的計算機區域設置設置如下:

  • 在“標準和格式”中選擇“英語(美國)”;
  • 在“地點”選擇“美國”。

它適用於我,只需試一試。


3
2018-01-28 05:36



實際上,OP的問題恰恰相反。應該更改為歐洲區域以獲取逗號作為十進制符號,然後分號將是列表分隔符。 - yosh m


如果文件中沒有其他逗號,您只需在分號的文本編輯器中進行查找/替換即可將它們變為逗號。之後視為正常的csv文件。


0
2017-08-26 13:41



這些CSV文件需要在不同的國家/地區(區域設置)中工作,並且在許多區域設置中,逗號是小數點分隔符而不是點。 “標準”逗號分隔值文件將不起作用。我想這就是為什麼分號被添加為CSV文件的有效分隔符的原因。 - Holgerwa