0
며칠 전에 직면 한 문제가 있습니다. 이 파일을 구문 분석하고 문자열을 날짜로 변환해야합니다. 나는 며칠 전에 다른 CSV 파일을 만들었습니다. 그러나 새 파일은 다음과 같은 오류를 표시합니다. java.text.ParseException : 파싱 할 수없는 날짜 : ""2011/03/4 ""jexcel api를 사용하여 문자열을 날짜로 구문 분석 할 수 없습니다.
왜 문자열이 둘 주위에 인쇄됩니까? 나는 이것이 그 문제의 근본 원인이라고 생각한다. 아래 코드를 게시하고 있습니다. 동일한 코드는 다른 파일에서 작동하며 날짜가 "3/4/2011"으로 인쇄되고 그 주위에 ""이 없어야합니다.
WritableWorkbook wbwrite=null;
WritableSheet sheet=null;
Label lwrite=null;
BufferedReader br=null;
Number n=null;
String strFile="quotes.csv";
String strLine = "";
String st[];
String delimiter="[,]";
int lineNumber = 0, tokenNumber = 0;
int length=0;
int counter=0;
Calendar cal = Calendar.getInstance();
DateTime datecell=null;
if(strFile.equals("quotes.csv"))
{
System.out.print("in loop if");
try
{
File file=new File("quotes.xls");
wbwrite=Workbook.createWorkbook(file);
System.out.print("file created");
//path=file.getCanonicalPath();
sheet = wbwrite.createSheet("Sheet 1", 0);
lwrite=null;
n=null;
Date dtest=null;
DateFormat df=null;
Date dadd=null;
df=new SimpleDateFormat("dd-mm-yy");
//create BufferedReader to read csv file
br = new BufferedReader(new FileReader(strFile));
strLine = "";
//st[]=empty;
delimiter="[,]";
lineNumber = 0; tokenNumber = 0;
length=0;
//read comma separated file line by line
while((strLine = br.readLine()) != null)
{
//System.out.print("strline="+strLine);
//break comma separated line using ","
st=strLine.split(delimiter);
length=0;
while(length<st.length)
{
//display csv values
//
System.out.println("Line # " + lineNumber +
", Token # " + tokenNumber
+ ", Token : "+ st[length]);
if(tokenNumber==2)
{
System.out.print("date="+st[length]);
DateFormat formatter = new SimpleDateFormat("dd-MM-yyyy");
Date date = (Date)formatter.parse(st[length]);
System.out.print("date="+date);
cal.setTime(date);
cal.set(Calendar.HOUR_OF_DAY, 17);
cal.set(Calendar.MINUTE, 30);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MILLISECOND, 0);
date = cal.getTime();
System.out.print("date="+date);
datecell=new DateTime(tokenNumber,lineNumber,date);
sheet.addCell(datecell);
lwrite=new Label(tokenNumber,lineNumber,st[length]);
sheet.addCell(lwrite);
}
if(tokenNumber==1||tokenNumber==5||tokenNumber==6||tokenNumber==7)
{
n=new Number(tokenNumber,lineNumber,Float.parseFloat(st[length]));
sheet.addCell(n);
}
tokenNumber++;
length++;
}
//reset token number
//tokenNumber = 0;
}
wbwrite.write();
wbwrite.close();
}
catch(Exception e)
{
System.out.print("error="+e);
}
}
}