Excel 방안지를 지원하는 기술 2016
Excel 방안지를 지원하는 기술
takezoen 선생님에 의한 2015년판은 이쪽이 됩니다.
여기에 소개된 S식에서 Excel 방안지를 출력하는 라이브러리 axebomber-clj는 여기를 참조하십시오.
특필해야 할 것은 axebomber-clj에서는 Excel에 흔한 문자 조각이 일어나지 않는다는 점입니다. 원래 Excel 방안지는 입력 문자열이 자동 개행되지 않는 제약을 마련해, 이용자가 의도적인 위치에서 개행을 제어하기 위해서 발명된 포맷입니다. 그러나 그 특이한 외형이 재앙하고 단순히 경원되는 존재에 머물고 있습니다. axebomber-clj는 문자 너비와 셀 너비를 계산하고 끊어지지 않는 위치에서 자동으로 줄 바꿈합니다. 이것에 의해, Excel 방안지의 문자 끊기 어려움을 살리면서, 번거로움을 지우고 있는 것입니다.
(render sheet {:x 2 :y 12 :data-width 6}
"長い文字列は自動的に改行されます。非常に便利ですね!")
문자열이 길어도… 아래와 같이, 정해진 사이즈를 넘으면 자동으로 개행되는 것입니다.
자동 개행을 위해
등폭 폰트라면 아직 간단합니다만, 보기 좋게 하는 Excel 방안지는 역시 프로포셔널을 사용한 것입니다.
(defn string-width [s font]
(if (> (.length (str s)) 0)
(let [layout (TextLayout. (.getIterator (make-attributed-string (str s) font))
font-render-context)]
(.. layout getBounds getWidth))
0))
java.awt.TextLayout 를 사용해, 실제의 폰트로 캐릭터 라인폭을 계산해, 셀폭과 비교하면서 개행을 넣어 가는 것으로, 자동 개행을 실현할 수 있습니다.
정확한 방안 만들기
역사적 Excel 방안지는 셀이 정사각형인 것이 조건이지만 셀 폭은 글꼴 크기에 따라 달라집니다.
POI를 사용해보기/가로폭의 설정 http://irof.hateblo.jp/entry/20100316/p1 에 가로폭의 어려움은 설명되어 있습니다만, 시행착오의 결과, 이하와 같이 폰트 사이즈에 의해, 오프셋(offset)를 불규칙하게 변화시키면(자) 정사각형의 셀이 얻을 수 있게 되었습니다.
(def font-offset
{ 8 200,
9 200,
10 200,
11 160,
12 160,
13 200,
14 180,
15 180,
16 160,
17 160,
18 160,
19 180,
20 160,
22 160,
24 140,
26 160,
28 150,
36 140})
(defn to-grid [sheet]
(let [font-size (.. sheet
getWorkbook
(getFontAt (short 0))
getFontHeightInPoints)]
(doseq [col-index (range 256)]
(.setColumnWidth sheet col-index (+ (get font-offset font-size 180) (* 256 2)))))
sheet)
excelebration
excelebration은 axebomber-clj의 명령 행 래퍼입니다.
htps : // 기주 b. 코 m / 가와시마 / 에 x 세이 b 라치온 (아직 문서가 없습니다 )
납품용의 표지를 출력하거나, 템플릿을 기초로 방안지를 출력하는 것이 간단하게 할 수 있게 됩니다.
Markdown에서 Excel 방안지로
Markdown에서 설계서를 쓴다는 야망을, 시스템 엔지니어의 절반은 가지고 있지만, Excel 방안지 제국의 힘에 굴복해, 히라스라 매스 눈을 메우는 "설계"작업을 하고 있다,라고 듣습니다.
그런 경우에는 excelebration을 사용합시다.
이런 Markdown이...
lein run -- -i test.md -o test.xlsx
커맨드 한발로, Excel 방안지에 조변합니다.
요약
아직 S 공식의 Excel 방안지 출력은 이미 실용화되었지만 Markdown의 Excel 방안지는 여전히 앞으로의 기술입니다. 당연히 jagrid 을 사용한 HTML 방안지에의 출력도 시야에 넣고 있습니다.
Excel 방안지를 지원하는 기술이 2016년 어떤 진보를 이루는지 기대하네요!
Reference
이 문제에 관하여(Excel 방안지를 지원하는 기술 2016), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kawasima/items/1efdc71a641ba46444ab텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)