Is there a way to tell Excel which delimiter to use when producing a CSV, e.g. tab or pipe?
Assuming we're dealing with Windows as your OS...
- Edit your Regional Settings or Windows (Regions and Language).
- On the Formats tab hit Additional Settings....
- Change the List Separator to the character you want to use as your CSV separator.
- Apply those changes.
- Go back to Excel and save the file as a CSV like you normally would and it should be saved using your chosen separator.
I don't see an option immediately in Excel, but I can offer some advice.
Remember that CSV files are Comma Separated Values, which follows a standard: Data, a comma, data, a comma, etc. To break this means it will not follow the specification.
What happens if you have a comma in your data though? Excel will automatically surround that cell's content with quotation marks (
"), so the program importing the file will know when that cell actually ends.
If you do not want a comma as a separator, you can save the file as a CSV still, then edit it manually. Open a text editor like Notepad or Notepad++. Do a search for whatever character you want to use (i.e. in Notepad, go to Edit->Find). If you want a pipe, search for a pipe (
|). If you hit any results, do not use this character. To search for a tab easily, I'd recommend using Notepad++.
Once you find that the character you want to use isn't being used elsewhere in your document, then you can do a Search and Replace. In Notepad, go to Edit->Replace.... In 'Find what:', type a comma. In 'Replace with:', type the character you want to use for the separator. The next part is to hit Find Next. The reason for this, is that if there are commas in your data as well, this will break your file. Only replace the commas that are delimiters of the data, and nothing in quotation marks.
Once this is done, you can save the file. If you want to import it, I'd recommend renaming it to a
.TXT file, so Excel will ask you what the Field Delimiter Character is. If you choose to open a
.CSV file, it will automatically use a comma as the delimiter, which is what you don't want.