Java
자바로 MS 문서 다루기
[하마] 이승현 (wowlsh93@gmail.com)
2015. 11. 5. 11:43
MDB(엑세스) 나 엑셀(XLS) 을 자바로 읽기위해서 , 먼저 JDBC-ODBC 를 알아보았는데
제어판에 32비트 , 64비트 ODBC 설정하는 부분에서 엑셀 , 엑세스에 대한 드라이버가 32비트만 설정가능한듯..
이것저것 찾아봤는데, 결국 나의 64비트 윈도우즈 8 에서는 답이 없는거 같아서 또 찾아보다가 발견한것.
생각해보니 한 7년전쯤에 , MFC 로 MDB 읽어서 사용하는 어플을 만들었다가, 32비트 OS 에서만 되서 망했던
기억이 떠오르기도 하고...
Apache POI (http://poi.apache.org/)
이런게 있더군요. 역시나 MS 세상에서 없을리가...한글 블로그도 엄청 많고..ㅎㅎ
추천 블로그 : http://yanggoony.tistory.com/3
하지만 먼가 쿼리처럼 검색해서 데이터를 가져오고싶은데 그건 안되는것같네요. 그래서 일단 메모리로 올려서
검색기능을 직접만들어서 사용함.
P.S
파이썬으로 MDB 읽어왔더니 (따로 ODBC 제어판에서 설정같은거 안하고) 바로됨 +.+ 왜 자바로는 안됬을까?
아마 자바가 64비트 버전이고 파이썬은 32비트 버전으로 윈도우에 깔아놔서 그런게 아닌가 싶습니다.
자바 32비트 버전깔아서 확인해보면 되는데.. 귀찮아서 ;;
import pypyodbc
conn = pypyodbc.win_connect_mdb('D:\\Share\\EC_content\\ec_qst_20151104.mdb')
#connection_string = 'Driver={Microsoft Access Driver (*.mdb)};DBQ=D:\\database.mdb'
#connection = pypyodbc.connect(connection_string)
cur = conn.cursor()
SQL = 'select Question from EC_QST where seq > 3000 and seq < 3010'
cur.execute(SQL)
print "column name"
for d in cur.description :
print d[0]
print "data---"
for row in cur.fetchall() :
for field in row :
print (field, ' ')
print (' ')
cur.close()
conn.close()