commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Niall Pemberton (JIRA)" <j...@apache.org>
Subject [jira] Commented: (SANDBOX-263) Excel strategy uses wrong separator
Date Thu, 13 Nov 2008 22:42:44 GMT

    [ https://issues.apache.org/jira/browse/SANDBOX-263?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12647443#action_12647443
] 

Niall Pemberton commented on SANDBOX-263:
-----------------------------------------

I did a saveAs csv using Excel 2007 on Windows and it used a comma as the separator.

Apparently (according to the Excel Help) - Excel uses the "List Separtor" configured for windows
- so I think Henri is probably right. You can check the separator your system is configured
with by going to the Windows "Control Panel", selecting "Regional and Language Options" and
clicking on the "Customize" button in the "Regional Options" tab

> Excel strategy uses wrong separator
> -----------------------------------
>
>                 Key: SANDBOX-263
>                 URL: https://issues.apache.org/jira/browse/SANDBOX-263
>             Project: Commons Sandbox
>          Issue Type: Bug
>          Components: CSV
>            Reporter: Gunnar Wagenknecht
>
> The Excel strategy is defined as follows.
> {code}
>     public static CSVStrategy EXCEL_STRATEGY   = new CSVStrategy(',', '"', COMMENTS_DISABLED,
ESCAPE_DISABLED, false, 
>                                                                  false, false, false);
> {code}
> However, when I do a "Save as" in Excel the separator used is actually {{';'}}. Thus,
parsing the CSV file as suggested in the JavaDoc of {{CSVParser}} fails.
> {code}
> String[][] data =
>    (new CSVParser(new StringReader("a;b\nc;d"), CSVStrategy.EXCEL_STRATEGY)).getAllValues();
> {code}
> Simple test to reproduce:
> {code}
> import java.io.IOException;
> import java.io.StringReader;
> import org.apache.commons.csv.CSVParser;
> import org.apache.commons.csv.CSVStrategy;
> public class CSVExcelStrategyBug {
> 	public static void main(final String[] args) {
> 		try {
> 			System.out.println("Using ;");
> 			parse("a;b\nc;d");
> 			System.out.println();
> 			System.out.println("Using ,");
> 			parse("a,b\nc,d");
> 		} catch (final IOException e) {
> 			e.printStackTrace();
> 		}
> 	}
> 	private static void parse(final String input) throws IOException {
> 		final String[][] data = (new CSVParser(new StringReader(input), CSVStrategy.EXCEL_STRATEGY)).getAllValues();
> 		for (final String[] row : data) {
> 			System.out.print("[");
> 			for (final String cell : row) {
> 				System.out.print("(" + cell + ")");
> 			}
> 			System.out.println("]");
> 		}
> 	}
> }
> {code}
> Actual output:
> {noformat}
> Using ;
> [(a;b)]
> [(c;d)]
> Using ,
> [(a)(b)]
> [(c)(d)]
> {noformat}
> Expected output:
> {noformat}
> Using ;
> [(a)(b)]
> [(c)(d)]
> Using ,
> [(a,b)]
> [(c,d)]
> {noformat}

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message