Discussions
Categories
Groups
Community Home
Categories
INTERNAL ENABLEMENT
POPULAR
PUBLIC CLOUD
PRIVATE CLOUD
Quick Links
MY LINKS
HELPFUL TIPS
Back to website
Home
Intelligence (Analytics)
Export report as csv (unicode)
Vankov
Hello,
I use birt-runtime-2_3_2,I export data with CSVRenderOption to csv file,but the unicode characters like '?' are becomes "Ü".Maybe i need to set encoding of CSVRenderOption,but there is no method for that.It is problem from CSVRenderOption,parsing or exel,any idea?
My code:
public void executeReportCsvDataExtraction(String strReportsDirectory,String strReportName,String strParameters) throws Exception
{
try
{
Log4J.infoout(String.valueOf(m_objReportEngine));
IReportRunnable design = m_objReportEngine.openReportDesign(strReportsDirectory+File. separator+strReportName+ ".rptdesign");
IGetParameterDefinitionTask paramtask = m_objReportEngine.createGetParameterDefinitionTask( design );
Collection clParameters = paramtask.getParameterDefns( true );
ReportDesignHandle designHandle = (ReportDesignHandle) design.getDesignHandle( );
ElementFactory designFactory = designHandle.getElementFactory( );
buildDataSource(designFactory, designHandle);
designHandle.close();
//Create task to run and render the report,
IRunAndRenderTask task = m_objReportEngine.createRunAndRenderTask(design);
Hashtable htParameters=new Hashtable();
StringTokenizer objParametersTokenizer=new StringTokenizer(strParameters,"&");
String strParameter;
int iIndex;
for(;objParametersTokenizer.hasMoreTokens()
{
strParameter=objParametersTokenizer.nextToken();
iIndex=strParameter.indexOf('=');
if (iIndex>-1)
{
htParameters.put(strParameter.substring(0,iIndex),
strParameter.substring(iIndex+1));
}
}
Iterator iter = clParameters.iterator();
IParameterDefnBase param;
IScalarParameterDefn scalar;
String strParameterValue;
while ( iter.hasNext( ) )
{
param = (IParameterDefnBase) iter.next( );
if ( param instanceof IScalarParameterDefn )
{
scalar = (IScalarParameterDefn) param;
strParameterValue=String.valueOf(htParameters.get(scalar.get Name()));
switch (scalar.getDataType())
{
case IScalarParameterDefn.TYPE_INTEGER:
case IScalarParameterDefn.TYPE_DECIMAL:
task.setParameterValue(scalar.getName(),Integer.parseInt(str ParameterValue));
break;
default:
String a=(String) htParameters.get(scalar.getName());
task.setParameterValue(scalar.getName(),a);
break;
}
}
}
task.validateParameters();
CSVRenderOption csvOptions = new CSVRenderOption();
csvOptions.setOutputFormat( "CSV" );
csvOptions.setOutputFileName("c:/csvReport.csv");
task.setRenderOption( csvOptions );
task.run();
task.close();
}
catch( Exception ex)
{
ex.printStackTrace();
throw ex;
}
}
Regards,
Lubo
Find more posts tagged with
Comments
Vankov
Any idea?