Jul
31
2007
31
2007
opencsv 1.8 ships – now with Bean binding
For reasons I’ll never understand, my little Apache2 open source CSV parser, opencsv has recently trucked through the 20,000 download mark.
Thanks to some wonderful work from Kyle Miller, I’ve just shipped version 1.8 which includes Kyle’s neat little Bean binding framework. Using one of Kyle’s various binding strategies (column position, column name, custom strategy), you can now bind a CSV file to a list of beans:
ColumnPositionMappingStrategy strat = new ColumnPositionMappingStrategy();
strat.setType(YourOrderBean.class);
String[] columns = new String[] {"name", "orderNumber", "id"};
strat.setColumnMapping(columns);
CsvToBean csv = new CsvToBean();
List list = csv.parse(strat, yourReader);
Great stuff, Kyle!
You can grab the new version from the download page, or checkout the javadoc, or see some sample usage scenarios.
Enjoy!
16 Comments + Add Comment
Leave a comment
Glen Smith
Archives
- January 2012
- November 2011
- October 2011
- September 2011
- August 2011
- July 2011
- June 2011
- April 2011
- March 2011
- January 2011
- November 2010
- October 2010
- September 2010
- August 2010
- July 2010
- June 2010
- May 2010
- April 2010
- February 2010
- January 2010
- December 2009
- November 2009
- October 2009
- September 2009
- August 2009
- July 2009
- June 2009
- May 2009
- April 2009
- March 2009
- December 2008
- November 2008
- October 2008
- September 2008
- August 2008
- July 2008
- June 2008
- May 2008
- April 2008
- March 2008
- February 2008
- January 2008
- December 2007
- November 2007
- October 2007
- September 2007
- August 2007
- July 2007
- June 2007
- May 2007
- April 2007
- March 2007
- February 2007
- January 2007
- December 2006
- November 2006
- October 2006
- September 2006
- August 2006
- July 2006
- June 2006
- May 2006
- April 2006
- March 2006
- February 2006
- January 2006
- December 2005
- November 2005
- October 2005
- September 2005
- August 2005
- July 2005
- June 2005
- May 2005
- April 2005
- March 2005
- February 2005
- January 2005
- December 2004
- November 2004
- October 2004
- September 2004
- August 2004
- July 2004
- June 2004
- May 2004
- March 2004
- February 2004
- January 2004
- December 2003
- November 2003
- October 2003
- September 2003

An article by Glen





interesting project, I’m new to the csv, sorry if I asked stupid question, Can I use csv as a lightweight db? I guess it support parser, but is it support update the line, delete the line?
How to bind some column in the csv file, how to specify the column position?
Thanks in advance!
Check out the ColumnPositionMappingStrategy… just what you’re after.
Great addition. Any thoughts on a BeanToCSV writer?
Is there any particular reason in CSV to quote an integer value? I was writing some unit tests to compare the behaviour of this CSV library against the others, and I’ve noticed that the output is pretty fond of quoting. On the upside it’s the only library which correctly writes null values.
Glen, I now use the JaCli with OpenCSV to parse the CSV files to a Collection of Beans, see the post here http://code.google.com/p/jacli/wiki/JaCliWithOpenCSV
As Li asked earlier, any thoughts on BeanToCSV class. I have a requirement like write Bean to CSV directly rather than preparing String buffer from a Bean.
Thanks in advance.
hi ur opencsv is great.
bt i ran into a problem dat in some computer, some files a file not found exception
i use the constructor CsvReader(new FileReader(file))
im wondering if compatibility is an issue
as these problems i encounter are from 2 MAC users. it work fine in my Windows though.
hi, great csv library, iv used the CsvToBean class to map colums to beans, only problem is i need to be able to customise the csv seperator but :
ColumnPositionMappingStrategy strat = new ColumnPositionMappingStrategy();
strat.setType(YourOrderBean.class);
String[] columns = new String[] {“name”, “orderNumber”, “id”};
strat.setColumnMapping(columns);
CsvToBean csv = new CsvToBean();
List list = csv.parse(strat, yourReader)
this forces the use of the default ‘,’ seperator.
if anybody knows of way to use a custum seperator i would be very greatfull
Glen, Does it support charset encoding? How do I read/write unicode csv file?
Is there a way to write beans using CsvWriter?
Hi Glen, I like opencsv, great tool. Can opencsv append? I may have missed something, but every time I use the writer, it scraps the complete document, so I have to do some coding gymnastics to keep the stuff that’s already there.
Hi Glen,
I used opencsv and found that it is not handling the blank lines because the csv is having extra rows with just commas the separator for next value. Hence CsvToBean is creating a bean with blank strings, So does CSVReader does not check for only commas i.e. in nextLine.
@Himanshu Can you try with opencsv 2.0.1? I think there were some fixes about this at some stage. Feel free to raise an issue (with sample data) if it’s still not working the way you think.
OpenCSV parser is unable parse to JavaBean with Integer or Data data type.
Kindly me know the way to type those datatypes
Hi Glen, I am using OpenCSV for my development purposes. I am also facing the same issue as to parse through Blank Lines. I’ve latest version but still reader object doesn’t check for Blank Lines. Basically first, I am reading all lines by readAll and iterating through that list to get my String Array but since it doesnt have API, I’ve to check runtime. It will be great if it is inbuilt functionality.