이번에 자바로 엑셀에 값을 넣고 생성하면서 문제가 생긴 부분이 생겼고, 해결하는 과정을 적어보고자 한다.
기존에 엑셀에 외부링크를 넣을 때 (정확히는 인터넷 페이지 주소, url) 아래와 같이 코드를 짰었고, 문제가 없었다.
String link = "<https://www.google.com>";
HSSFWorkbook workbook = new HSSFWorkbook();
HSSFSheet sheet = workbook.createSheet("sheet1");
HSSFRow row = null;
HSSFCell cell = null;
row = sheet.createRow(0);
cell = sheet.createCell(0);
cell.setCellValue(link);
Hyperlink link_article = workbook.getCreationHelper().createHyperlink(HyperlinkType.URL);
link_article.setAddress(articleLink);
cell.setHyperlink(link_article);
문제는 제목에 적어 놨듯이, 특정문자(”#”)를 적을 때면 엑셀 내부에서 알아서 값을 치환시키는 문제가 있었다.
엑셀의 경우에 #은 오류를 의미하기에 엑셀에서 알아서 바꿔버리는듯 했다.
다행히, 누군가 나와 같은 증상을 겪고 있었고 해당 내용을 스택오버플로우에 업로드했다.
HSSFHyperlink and URL fragment encoding
HSSFHyperlink and URL fragment encoding
I am using the apache poi package to generate excel workbooks. In the workbook I include cells with hyperlinks, using URLs containing fragments (#frag). In the resulting cells, the # character in...
stackoverflow.com
하지만 내가 질문을 조회했을 때는 답변이 없었고, 나는 그럼 어쩌지? 하는 상태에 빠지고 말았다.
그래서 나는 엑셀 함수를 이용하기로 했다.
엑셀 HyperLink(하이퍼링크) 함수 사용하기
안녕하세요! 종호 입니다 :) 이번 포스팅은 엑셀 HyperLink(하이퍼링크) 함수를 사용하는 방법에 대해 알...
blog.naver.com
함수가 존재한다면, 함수를 이용해 해당 값의 파라미터로 넘긴다면?
“를 링크 문자열 양끝에 붙여서 엑셀 함수를 해당 셀 안에 넣어준다.
cell = row.createCell(5);
cell.setCellFormula("HYPERLINK(\\""+{본인의링크주소}+"\\", \\"원문\\")");
cell.setCellStyle(linkStyle);
내 경우에는 완벽하게 동작했기에 기록을 위해 남겨둔다.
그리고 스택오버플로우에도 적어줬다 V~
수줍은 첫 스택오버플로우 답변 ####
'text > Java' 카테고리의 다른 글
spring boot login 중복 로그인 방지 (2) | 2023.05.28 |
---|---|
spring boot 로그인 (+spring security, mysql) (1) | 2023.05.28 |
나는 인내심이 적고 적어.. (progress bar) (0) | 2023.03.15 |
싱글턴 패턴 (Singleton pattern) 간단 정리 (0) | 2023.03.14 |
어댑터 패턴(Adapter pattern) 간단 정리 (0) | 2023.03.10 |
댓글