New

1. 문자형 열에서 천단위 구분자(',')와 소수점 구분자('.')를 Size 계산에서 제외할 수 있는 (col) SizeIgnoreDecimalSep 옵션 추가  

입력된 문자열이 숫자형인 경우, 설정된 열에 입력 가능한 글자 수에서 자릿수 구분자와 소수점 구분자의 값들을 글자 수에서 제외하는 기능입니다.

locale 파일의 GroupSeparatorDecimalSeparator를 기준으로 동작합니다.

locale 메세지 파일(ko.js,en.js등)에서 자릿수 구분자는 Format.GroupSeparator, 소수점 구분자는 Format.DecimalSeparator로 설정되어 있습니다.

주의 : Col 혹은 Cell에 Size 속성이 설정되어 있어야 해당 기능이 동작합니다.


ValueDescription
boolean입력된 데이터에서 자릿수 구분자와 소수점 구분자를 이용하여 숫자형인지 판단하고, 숫자형 데이터일 경우 구분자 문자들을 입력가능한 글자수에서 제외 여부
(Int, Float type: default:1(true), 그 외의 type: default:0(false))
전 세계에서 사용되는 자릿수 구분자(Format.GroupSeparator) 문자: ,, ., , '
전 세계에서 사용되는 소수점 구분자(Format.DecimalSeparator) 문자: ,, .


[사용 예시]

//FloatData열에 최대 10글자까지 입력가능, 데이터가 숫자형인 경우 구분자를 입력제한 글자수에서 제외

options.Cols = [

    ...

    {Type: "Text", Size: 10, SizeIgnoreDecimalSep: true, Name: "FloatData", Width: 120 ...},

    ...

];


2. 시트의 스타일을 변경할 수 있는 고정행을 추가하는 (cfg) StyleRowConfig 추가 

시트 상단 혹은 하단에 별도의 행을 통해 시트의 스타일을 설정 할 수 있습니다.

StorageType을 통해 스타일 정보를 저장할 방법을 설정할 수 있습니다.


[사용 예시]

StyleRowConfig: {
    Visible: true, // 화면 표시 여부 default: true
    StorageType: 2, // 0: 사용안함, 1: 캐시 사용, 2: 서버통신
    ServerUrl: "../styleinforeturn.jsp", // 서버통신을 할 경우 url
    AutoLoad: true, // 생성 시 스타일 정보 자동 로드 여부
    Themes: {
        IBMT: "../../assets/ibsheet/css/mint/main.css",
        Custom: "../../assets/ibsheet/css/simple/main2.css"
    }
},


[실행 결과]



CSS New

1. StyleRowConfig 관련 css 속성 추가 (IB, IBGR, IBGY, IBMR, IBMT, IBSP에 추가) 

/* IB 테마 기준 */
.IBMain tr:has([ib-row='STYLE']) { display: flex;flex-wrap: wrap;margin: 4px 0;height: auto !important;align-items: center; }
.IBMain td[ib-row='STYLE'] { margin: 0;margin-right: 10px;padding: 0;background-color: transparent !important; }
.IBMain td[ib-row='STYLE'] label { display: flex;align-items: center; }
.IBMain td[ib-row='STYLE'] input { margin: 0;padding: 0;margin-left: 4px;cursor: pointer; }
.IBMain td[ib-row='STYLE'] input[type='color'] { height: 20px;width: 20px;background-color: transparent;border: none; }
.IBMain td[ib-row='STYLE'] input[type='number'] { padding-left: 4px;width: 40px;line-height: 24px;cursor: initial; }
.IBMain td[ib-row='STYLE'] select { margin-left: 4px;padding-bottom: 1px;width: 60px;height: 26px;cursor: pointer; }
.IBMain td[ib-row='STYLE'] input[type='number'], .IBMain td[ib-row='STYLE'] select { margin-left: 6px;border: 1px solid #bbb;border-radius: 2px;box-sizing: border-box !important; }
.IBMain td[ib-row='STYLE'] input[type='number']:focus, .IBMain td[ib-row='STYLE'] select:focus { outline: none; }
.IBMain td[ib-col='handler'] div button, .IBMain td[ib-col='resetStyle'] button { margin-right: 4px;padding: 4px;border: none;background-color: #53bfca;color: white;cursor: pointer; }
.IBMain td[ib-col='handler'] div button:last-child, .IBMain td[ib-col='resetStyle'] button { margin-right: 0px; }
.IBMain td[ib-row='STYLE']:has(.divider) { position: relative;padding-right: 12px !important; }
.IBMain td[ib-row='STYLE']:has(.divider)::after { content: "";position: absolute;top: 50%;right: 0;display: block; width: 1px;height: 100%; max-height: 18px;background: #bbb; transform: translateY(-50%); }
.IBMain td[ib-col='resetStyle']::after { height: 18px; }


Locale New

1. StyleRowConfig 관련 메시지 추가 (ko, en, jp, cn) 

"StyleRow": {
    "Header": "헤더행",
    "Row": "데이터행",
    "Alternate": "교차행 색상",
    "Save": "저장",
    "Load": "불러오기",
    "ApplyAll": "모든 시트에 적용",
    "Reset": "리셋",
    "TextSize": "글자크기",
    "TextColor": "글자색",
    "BackgroundColor": "배경색",
    "Theme": "테마",
    "SaveSuccess": "스타일이 저장되었습니다.",
    "SaveFail": "스타일 저장에 실패했습니다.",
    "NoStyleDataToSave": "저장할 스타일 정보가 없습니다.",
    "LoadFail": "스타일을 불러오는 데 실패했습니다.",
    "NoStyleDataToLoad": "불러올 스타일 정보가 없습니다.",
    "NoServerUrl": "서버 주소가 설정되어 있지 않습니다.",
    "MaxFontSize": "글자크기는 %1px 보다 클 수 없습니다.",
    "MinFontSize": "글자크기는 %1px 보다 작을 수 없습니다."
}




Fixed

1. setFixedCols, setFixedLeft, setFixedRight로 열 이동 후 병합된 셀의 onButtonClick 이벤트가 발생하지 않던 문제 수정 


2. 시트 외부의 브라우저에 포커스가 있는 상태에서 확대/축소 키보드 입력(Ctrl + '+', '-') 시 시트의 Scale이 변경 되는 문제 수정 


3. showMessageTime로 표시하는 메시지가 CSP 환경에서 동작하도록 수정 


4. 숫자형 열에서 Size에 소수점 구분자('.')가 포함되지 않도록 변경 


5. 피벗시트에서 addFormula로 추가한 Formula의 계산이 이루어지지 않는 문제 수정 


6. 시트 생성 옵션에 Data, data 키를 사용할 경우 조회 시 에러가 발생하는 문제 수정 




Excel Fix

ibsheet-excel.js 1.1.21-20250619-15버전에서 해당 릴리즈가 이루어졌습니다.

이번 릴리즈 내역 적용 시 servermodule 1.1.41 버전 이상이 필요합니다.

1. 문자형 열의 Formatjson 형태로 설정되어 있을 때, 다운로드 받을 값을 선택하는 downTextFormat 기능 추가 


2. 대용량 엑셀 파일 업로드를 위한 load.setStreamingUploadMode() 추가 

streamingUploadMode 사용시 메모리에 캐싱할 행 개수를 설정하는 load.setStreamingRowCacheSize()

inputStream으로 파일을 읽을 때 버퍼 사이즈를 설정하는 load.setStreamingBufferSize(512) 옵션 추가 


3. load.directLoadExcel()처럼 한꺼번에 모든 데이터를 HashMap으로 읽어오지 않고, 한 행씩 스트리밍 콜백으로 받아오도록 하는 load.directLoadExcelStreaming(new StreamingCallback()) 추가 


4. Text 타입 컬럼의 Format으로 설정되어 있을 경우, 포맷을 value 값으로 내려받을지, key 값으로 내려받을지 설정하는 downTextFormat 옵션 추가 


5. Jakarta 서버모듈에서 POI를 사용하지 않는 엑셀 다운로드, 업로드가 정상 동작하지 않는 현상 수정 


6. batik-all-1.17 버전 사용시 down2Image를 이용한 pdf 다운로드가 정상 동작하지 않는 현상 수정