๐ก java.lang.IllegalStateException: Cannot get a STRING value from a NUMERIC cell ํด๊ฒฐํ๊ธฐ
๐จ Error :
- ์ก์ ํ์ผ์ ํ์ฑ ํ์ฌ DB์ ๋ฃ๋ ์์ ์ ์งํ ์ค์ ์์ ์๋ฌ๋ฅผ ๋ง๋ฌ๋ค.
๐ค ์์ธ :
XSSFRow row = sheet.getRow(0); // ์์
์ํธ์ 0๋ฒ์งธ ํ์ ๊ฐ์ ธ์จ๋ค.
row.getCell(1).getStringCellValue()); // 0๋ฒ์งธ ํ์ 1๋ฒ์งธ ์
์ ๊ฐ์ ธ์ ์คํธ๋ง์ผ๋ก ๋ณํํ๋ค.
์์ ์ ๋ฐ์ดํฐ๋ ๊ธฐ๋ณธ์ ์ผ๋ก NUMERIC, STRING ๋ฑ์ ์ ์์์ด ์ง์ ๋์ด ์๋ค. ์ค์ค๋ก ๋ง๋ ์์ ํ์ผ์ด๋ผ๋ฉด ์ ์์์ ๋ฐ๋ก ์ ํด๋์ ์ ์์ง๋ง ์ธ๋ถ์์ ๊ฐ์ ธ์จ ์์ ํ์ผ์ ์๋ฐ๋ก ๋ค๋ฃจ๊ธฐ ์ํด์๋ ์๋ฐ ํ์์ ํ์ ๋ณํ์ด ํ์ํ๋ค.
์์ ์ ์ ์์์ ์ง์ ํ์ง ์์ผ๋ฉด ์๋์ผ๋ก ์ธ์ํ๋๋ฐ ์ซ์๋ง ์๋ ๊ฒฝ์ฐ ๊ทธ๋๋ก ์ซ์๋ก ์ธ์ํ๋ค. ๋ฐ๋ผ์ ์์ ์๋ฌ๋ฅผ ์์ ์ฝ๋์ ๋์ ํ๋ฉด 0๋ฒ์งธ ํ์ 1๋ฒ์งธ ์ ์ ์คํธ๋ง์ผ๋ก ๊ฐ์ ธ์ค๊ณ ์ถ์๋ฐ ์ ์์์ ์๋์ผ๋ก NUMERIC์ผ๋ก ์ธ์ํด ์ค๋ฅ๊ฐ ๋ ๊ฒ์ด๋ค.
๐ ํด๊ฒฐ :
- ์๋ Numbers(๋๋ฒ์ค)์ง๋ง ์์ ๋ ํฌ๊ฒ ๋ค๋ฅด์ง ์๋ค. ๋จผ์ ์์ ์ด๋ ๋๋ฒ์ค์์ crtl + a(๋งฅ๋ถ์ command + a)๋ก ์ ์ฒด ์ ์ ์ ํ ํ ์ ์์์์ ๋ฐ์ดํฐ ํฌ๋งท์ ์๋์์ ํ ์คํธ๋ก ๋ณ๊ฒฝํ๋ฉด ํด๊ฒฐ๋๋ค.
โป ๋ง์ฝ NUMERIC ๋ฑ ๊ธฐํ ์์์ ์ด์ฉํด์ผ ํ๋ค๋ฉด ํ์ํ ๋ถ๋ถ๋ง ๋ฐ๋ก ๋ณ๊ฒฝํด์ฃผ๋ฉด ๋๋ค.
(์ถ๊ฐ)
ํ ์คํธ๋ก ๋ณ๊ฒฝํด๋ ๊ฐ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ ๊ฒฝ์ฐ๊ฐ ์๋ค. ์ด์ ๋ ๋ชจ๋ฅด๊ฒ ์ผ๋, ๋ถ๋ช ํ ์คํธ๋ก ์ง์ ํ์์๋ ๊ณ์ NUMERIC์ผ๋ก ์ฝํ๋๋ฐ ์ด๋ด ๋ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๊ตฌ๊ธ ์คํ๋ ๋ ์ํธ๋ฅผ ํ์ฉํ๋ฉด ๋๋ค.
- ์คํ๋ ๋ ์ํธ์ ๊ทธ๋๋ก ํ์ผ์ ์ ๋ก๋ํ๊ณ ์์ ๋ฐฉ๋ฒ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ์์์ ์ผ๋ฐ ํ ์คํธ๋ก ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ณ๊ฒฝ๋ ํ์ผ์ ๋ค์ ๋ค์ด๋ก๋ํ์ฌ ๊ทธ ํ์ผ์ ํ์ฉํ๋ฉด ํด๊ฒฐ๋๋ค.
๐ค ์๋ฌธ์ :
์์ ๋ก ์ ์์์ ๋ณ๊ฒฝํ์ ๋ ๋ณ๊ฒฝ์ ์ธ์ํ์ง ๋ชปํ๋ ๊ฒฝ์ฐ๊ฐ ์์๋๋ฐ ์ ๊ทธ๋ฐ์ง ๋ชจ๋ฅด๊ฒ ๋ค. ์์ ๋ฐฉ๋ฒ์ ํน์ ์์ ์ด ๋ฌธ์ ์ธ๊ฐ ํ๊ณ ๊ตฌ๊ธ ์คํ๋ ๋ ์ํธ๋ฅผ ์ฌ์ฉํ๋๋ฐ(์ ๋ก๋ -> ๋ณ๊ฒฝ -> ๋ค์ด๋ก๋) ํด๊ฒฐ๋์ด ์ถ๊ฐ๋ก ๊ธฐ๋กํ๋ค.