자바로 만든 CSV파일 아웃룩 2007에서 가져오기 오류
반월
자바로만든 csv파일 아웃룩2007과 연동
자바로 만든 csv파일 아웃룩 연락처로 가져오기 오류
우선 저번에 답변 달아주신 찬님 감사합니다.
자바로 아래 소스처럼 해서 연락처 csv파일 만들었는데 아웃룩 2007에서 가져오기를 하면 저런 에러가 뜹니다.
그래서 처음에는 컬럼명이나 들어가는 값 등.. 다른 것 때문에 에러가 나는줄 알고 새로운 시도를 해봤습니다.
아웃룩에서 연락처를 내보내기를하고 제 프로그램으로연락처csv파일을 만들었습니다.
물론 제것은가져오기를 하면 저런에러가 나고 내보내기한 파일은 가져오기를 하면 잘 들어갑니다.
그래서 제가 만든 파일 내용을 복사해서 내보내기한 파일을 연후 내용을 지우고 복사한거를 붙였습니다.
그리고 내려받기한 파일의 내용은 제가만든 파일안에 지우고 붙였습니다. 쉽게말해 알맹이 내용만 서로 바꿔서 저장했습니다.
그런데 이게 왠걸.. 내보내기파일에 제가만든 내용이 들어간 파일은 가져오기가 되고 제가만든파일에 내보내기에 들어있었던
내용을 붙인 파일은 가져오기가 역시 아래처럼 실패 하더군요.
이걸 보니까 컬럼이나 값에 문제가 아니고 아예 아래 코딩상에 csv 틀 자체가 문제라는건데 어디가 문제인지
모르겠습니다. 소스보시고 아시는분은 답변좀 달아주세요..ㅜㅜ 하루 종일 이것만 하네요..
package org.nts.ldis.intra.contact.action;
import java.text.simpledateformat;
import java.text.format;
import java.util.*;
import java.io.*;
import javax.servlet.http.httpservletrequest;
import javax.servlet.http.httpservletresponse;
import org.apache.struts.action.action;
import org.apache.struts.action.actionform;
import org.apache.struts.action.actionforward;
import org.apache.struts.action.actionmapping;
import org.nts.ldis.intra.contact.model.contactdao;
import org.nts.ldis.intra.contact.form.contactform;
public class csv_downlad extends action
{
public actionforward execute(actionmapping mapping,
actionform form,
httpservletrequest request,
httpservletresponse response) throws exception
{
java.util.date today = calendar.getinstance().gettime();
simpledateformat formatter = new simpledateformat(yyyymmddhhmmss);
string current = formatter.format(today);
bufferedwriter bfwriter = new bufferedwriter(new filewriter(c:/users/heedong/desktop/contact_addr_+current+.csv)); // c:/xx/xx.xls 이 경로에 엑셀 파일이 만들어 지게 됩니다.
actionforward forward = null;
string email = request.getparameter(email);
contactdao dbpro = contactdao.getinstance();
list searchcontactinfo;
searchcontactinfo = dbpro.searchcontactinfo2(email);
stringbuffer sbdata = new stringbuffer();
if(searchcontactinfo.size() 0)
{
for(int i=0;isearchcontactinfo.size();i++)
{
contactform p = new contactform();
p = (contactform)searchcontactinfo.get(i);
string name = p.getname();//이름
string emails = p.getemail();//메일주소
string comp_name = p.getcompname();//회사이름
string cellphone = p.getcellphone();//휴대폰번호
string phone = p.gethomephone();//집번호
string address = p.getaddress();//집주소
string messenger = p.getmessenger();//메신저주소
string memo = p.getmemo();//메모
//row 단위로 엑셀에 적기 위한 부분 \t 는 탭을 의미하며 엑셀에 쓸경우 한칸 옆으로 옮겨짐
sbdata.append(이름,전자 메일 주소,회사,휴대폰,집 전화 번호,근무지 주소 번지,웹 페이지,메모\n);
// row단위로 콤마로 구분합니다.
sbdata.append(name + ,)
.append(emails + ,)
.append(comp_name + ,)
.append(cellphone +lphone + ,)
.append(phone + ,)
.append(address + ,)
.append(messenger + ,)
.append(memo + \n);
try
{
//실제로 적어주는 부분
bfwriter.write(sbdata.tostring());
bfwriter.flush();
}catch( ioexception ex){
ex.printstacktrace();
}catch( exception e){
e.printstacktrace();
}
}
}
request.setattribute(searchcontactinfo, searchcontactinfo);
forward = mapping.findforward(success);
return forward;
}
}