Skip to content

Commit c5978fb

Browse files
committed
Update document for v1.3.2
1 parent b81b15e commit c5978fb

File tree

7 files changed

+105
-17
lines changed

7 files changed

+105
-17
lines changed

CHANGELOG.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,30 @@
11
# SQL2Excel Version History
22

3+
## v1.3.2 - CSV/TXT Formatting & Directory Naming (2025-10-31)
4+
5+
### ✨ New/Changed
6+
- Per-sheet export directory naming simplified
7+
- Directory is now `<output_basename>` (extension suffix removed)
8+
- Example: `output="d:/temp/report.csv"` → directory `d:/temp/report/`
9+
- CSV/TXT field formatting changes
10+
- Apply CSV quoting/escaping rules only when output extension is `.csv`
11+
- For non-CSV (e.g., `.txt`, `.sql`, etc.), write plain values without quoting
12+
- Internal newlines inside field values are normalized (\r/\n → space) for both CSV and TXT
13+
- Record separators remain CRLF; headers still included
14+
- Date values are serialized as `yyyy-MM-dd HH:mm:ss` (24-hour) in CSV/TXT and SQL literals
15+
16+
### 🔧 Code Changes
17+
- `src/excel-generator.js`
18+
- Add `isCsv` flag; branch value formatter per format
19+
- `escapeCsv()` now normalizes internal newlines before quoting
20+
- Introduce `toPlain()` with newline normalization for non-CSV
21+
- Change per-sheet target directory from `<base>_<ext>` to `<base>`
22+
23+
### 📝 Documentation
24+
- README/README_KR: Updated highlights and per-sheet export directory rules; noted CSV/TXT newline normalization and quoting scope
25+
- USER_MANUAL/USER_MANUAL_KR: Updated per-sheet export section to reflect new directory naming and formatting rules
26+
- CHANGELOG/CHANGELOG_KR: Added v1.3.2 entry
27+
328
## v1.3.1 - Filename Variables and DATE Fixes (2025-10-30)
429

530
### ✨ New/Changed

CHANGELOG_KR.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,30 @@
11
# SQL2Excel 버전 히스토리
22

3+
## v1.3.2 - CSV/TXT 포맷팅 및 디렉토리 명명 변경 (2025-10-31)
4+
5+
### ✨ 변경 사항
6+
- 시트별 내보내기 디렉토리 명명 단순화
7+
- 디렉토리가 이제 `<출력파일베이스>`로 생성됩니다 (확장자 접미사 제거)
8+
- 예: `output="d:/temp/report.csv"` → 디렉토리 `d:/temp/report/`
9+
- CSV/TXT 필드 포맷팅 변경
10+
- CSV 인용/이스케이프 규칙은 출력 확장자가 `.csv`일 때만 적용
11+
- 비-CSV(예: `.txt`, `.sql` 등)는 인용 없이 값 그대로 출력
12+
- 필드 내부 줄바꿈(\r/\n)은 CSV/TXT 모두 공백으로 정규화
13+
- 레코드 구분 개행은 CRLF 유지, 헤더는 계속 포함
14+
- 날짜 값은 CSV/TXT 및 SQL 리터럴에서 `yyyy-MM-dd HH:mm:ss`(24시간) 형식으로 직렬화
15+
16+
### 🔧 코드 변경
17+
- `src/excel-generator.js`
18+
- `isCsv` 플래그 추가 및 포맷별 값 포매터 분기
19+
- `escapeCsv()`에서 인용 전 내부 줄바꿈 정규화
20+
- 비-CSV용 `toPlain()`에 내부 줄바꿈 정규화 추가
21+
- 시트별 대상 디렉토리 `<base>_<ext>``<base>`로 변경
22+
23+
### 📝 문서
24+
- README/README_KR: 시트별 디렉토리 규칙 및 CSV/TXT 줄바꿈 정규화, 인용 적용 범위 반영
25+
- USER_MANUAL/USER_MANUAL_KR: 시트별 내보내기 섹션에 디렉토리 명명 및 포맷팅 규칙 업데이트
26+
- CHANGELOG/CHANGELOG_KR: v1.3.2 항목 추가
27+
328
## v1.3.1 - 파일명 변수 및 DATE 개선 (2025-10-30)
429

530
### ✨ 변경 사항

README.md

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,18 @@ A Node.js-based tool for generating Excel files from SQL query results.
2626
- 🔧 **Input Validation**: Automatic whitespace trimming for file path inputs
2727
- 🗂️ **Filename Variables**: Use `${DATE:...}`, `${DATE.TZ:...}`, and `${DB_NAME}` in `excel.output` (also supports custom `$(DB_NAME}`)
2828

29+
## v1.3.2 Highlights
30+
31+
- Per-sheet export directory naming simplified
32+
- Directory is now `<output_basename>` (extension suffix removed)
33+
- Example: `output="d:/temp/report.csv"` → directory `d:/temp/report/`
34+
- CSV/TXT field formatting changes
35+
- Apply CSV quoting/escaping rules only for `.csv`
36+
- Non-CSV (e.g., `.txt`, `.sql`) writes plain values without quoting
37+
- Normalize internal newlines in fields (\r/\n → space) for both CSV and TXT
38+
- Record separators remain CRLF; headers included
39+
- Date values are serialized as `yyyy-MM-dd HH:mm:ss` (24-hour) in CSV/TXT and SQL literals
40+
2941
## v1.3.1 Highlights
3042

3143
- Filename variables in output path
@@ -41,12 +53,14 @@ A Node.js-based tool for generating Excel files from SQL query results.
4153
- `.csv` → Generate per-sheet CSV files
4254
- All other extensions (e.g., `.txt`, `.log`, `.data`, `.sql`, etc.) → Generate per-sheet TXT files (tab-delimited)
4355
- **Directory and filename rules for per-sheet export**
44-
- Output directory: `<output_basename>_<ext>` (no dot). Example: `output="d:/temp/report.csv"``d:/temp/report_csv/`
56+
- Output directory (updated in v1.3.2): `<output_basename>`
57+
- Example: `output="d:/temp/report.csv"``d:/temp/report/`
4558
- Each sheet becomes a separate file named after the sheet's `originalName`
4659
- No 31-character truncation for CSV/TXT (Excel-only limit). Filenames sanitized and capped at 100 chars
4760
- **Format defaults**
48-
- CSV: comma, UTF-8 with BOM, headers, CRLF
49-
- TXT: tab, UTF-8 with BOM, headers, CRLF
61+
- CSV: comma, UTF-8 with BOM, headers, CRLF; quoting only for `.csv`; internal newlines normalized
62+
- TXT: tab, UTF-8 with BOM, headers, CRLF; no quoting; internal newlines normalized
63+
- Dates: `yyyy-MM-dd HH:mm:ss` (24-hour)
5064

5165
### Previously in v1.2.11
5266

README_KR.md

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,18 @@ SQL 쿼리 결과를 엑셀 파일로 생성하는 Node.js 기반 도구입니
2626
- 🔧 **입력 유효성 검증**: 파일 경로 입력에 대한 자동 공백 제거
2727
- 🗂️ **파일명 변수**: `excel.output`에서 `${DATE:...}`, `${DATE.TZ:...}`, `${DB_NAME}` 사용 가능 (커스텀 `$(DB_NAME}`도 지원)
2828

29+
## v1.3.2 하이라이트
30+
31+
- 시트별 내보내기 디렉토리 명명 단순화
32+
- 디렉토리는 이제 `<출력파일베이스>` (확장자 접미사 제거)
33+
- 예: `output="d:/temp/report.csv"` → 디렉토리 `d:/temp/report/`
34+
- CSV/TXT 필드 포맷팅 변경
35+
- CSV 인용/이스케이프는 `.csv`일 때만 적용
36+
- 비-CSV(예: `.txt`, `.sql`)는 인용 없이 그대로 기록
37+
- 필드 내부 줄바꿈(\r/\n)은 CSV/TXT 모두 공백으로 정규화
38+
- 레코드 구분 개행은 CRLF 유지, 헤더 포함
39+
- 날짜 값은 CSV/TXT 및 SQL 리터럴에서 `yyyy-MM-dd HH:mm:ss`(24시간) 형식으로 직렬화
40+
2941
## v1.3.1 하이라이트
3042

3143
- 출력 경로에서 파일명 변수 지원 강화
@@ -41,12 +53,14 @@ SQL 쿼리 결과를 엑셀 파일로 생성하는 Node.js 기반 도구입니
4153
- `.csv` → 시트별 CSV 파일 생성
4254
- 그 외 모든 확장자(예: `.txt`, `.log`, `.data`, `.sql` 등) → 시트별 TXT 파일 생성 (탭 구분)
4355
- **시트별 내보내기 디렉토리/파일명 규칙**
44-
- 출력 디렉토리: `<출력파일베이스>_<확장자>` (점 제외). 예: `output="d:/temp/report.csv"``d:/temp/report_csv/`
56+
- 출력 디렉토리( v1.3.2에서 업데이트): `<출력파일베이스>`
57+
- 예: `output="d:/temp/report.csv"``d:/temp/report/`
4558
- 각 시트는 `originalName`(원본 시트명)으로 파일 생성
4659
- CSV/TXT는 31자 제한 없음(엑셀 전용 제한). 파일명은 안전화 및 최대 100자 제한
4760
- **포맷 기본값**
48-
- CSV: 콤마, UTF-8 BOM, 헤더 포함, CRLF
49-
- TXT: 탭, UTF-8 BOM, 헤더 포함, CRLF
61+
- CSV: 콤마, UTF-8 BOM, 헤더, CRLF; 인용은 `.csv`에서만; 내부 줄바꿈 정규화
62+
- TXT: 탭, UTF-8 BOM, 헤더, CRLF; 인용 없음; 내부 줄바꿈 정규화
63+
- 날짜: `yyyy-MM-dd HH:mm:ss` (24시간)
5064

5165
### 이전 버전(v1.2.11)
5266

USER_MANUAL.md

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,16 +42,18 @@ SQL2Excel is a powerful Node.js-based tool for generating Excel files from SQL q
4242
- 📋 **SQL Query Formatting**: Preserve original SQL formatting with line breaks in Table of Contents
4343
- 🔧 **Input Validation**: Automatic whitespace trimming for file path inputs
4444

45-
### What's New (v1.3.0)
45+
### What's New (v1.3.2)
4646

4747
- Per-sheet export routing by extension
4848
- `.xlsx` / `.xls` → Generate a single Excel workbook (existing behavior)
4949
- `.csv` → Generate per-sheet CSV files
5050
- All other extensions (e.g., `.txt`, `.log`, `.data`, `.sql`, etc.) → Generate per-sheet TXT files (tab-delimited)
5151
- Directory and filename rules (per-sheet export)
52-
- Output directory: `<output_basename>_<ext>` (no dot). Example: `output="d:/temp/report.csv"``d:/temp/report_csv/`
52+
- Output directory: `<output_basename>` (updated in v1.3.2). Example: `output="d:/temp/report.csv"``d:/temp/report/`
5353
- Each sheet becomes a separate file named after the sheet's `originalName`
5454
- No 31-character truncation for CSV/TXT (Excel-only limit). Filenames sanitized and capped at 100 chars
55+
- CSV/TXT formatting: CSV quoting only for `.csv`; internal newlines normalized to space for both
56+
- Date values are serialized as `yyyy-MM-dd HH:mm:ss` (24-hour) in CSV/TXT and SQL literals
5557

5658
Previously in v1.2.11
5759

@@ -130,8 +132,10 @@ Create `config/dbinfo.json` file:
130132
- `.csv` → Per-sheet CSV
131133
- Others → Per-sheet TXT (tab-delimited)
132134
- Output directory and filenames
133-
- Files are written under `<output_basename>_<ext>` (no dot)
135+
- Files are written under `<output_basename>` (updated in v1.3.2)
134136
- Each file name is the sheet `originalName` (sanitized, max 100 chars). No 31-char limit (Excel-only)
137+
- CSV/TXT formatting: `.csv` applies CSV quoting/escaping; non-CSV writes plain values; internal newlines (\r/\n) normalized to spaces for both
138+
- Dates: `yyyy-MM-dd HH:mm:ss` (24-hour)
135139

136140
## 🚀 Basic Usage
137141

USER_MANUAL_KR.md

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -42,16 +42,19 @@ SQL2Excel은 고급 스타일링, 템플릿 지원, 독립 실행 파일 배포
4242
- 📋 **SQL 쿼리 포맷팅**: 목차에서 줄바꿈을 포함한 원본 SQL 포맷 유지
4343
- 🔧 **입력 유효성 검증**: 파일 경로 입력에 대한 자동 공백 제거
4444

45-
### What's New (v1.3.0)
45+
### What's New (v1.3.2)
4646

47-
- 확장자 기반 시트별 내보내기 라우팅
47+
- 확장자 기반 시트별 내보내기 라우팅(유지)
4848
- `.xlsx` / `.xls` → 단일 엑셀 통합문서 생성 (기존 동작)
4949
- `.csv` → 시트별 CSV 파일 생성
5050
- 그 외 모든 확장자(예: `.txt`, `.log`, `.data`, `.sql` 등) → 시트별 TXT 파일 생성 (탭 구분)
51-
- 디렉토리/파일명 규칙 (시트별 내보내기)
52-
- 출력 디렉토리: `<출력파일베이스>_<확장자>` (점 제외). 예: `output="d:/temp/report.csv"``d:/temp/report_csv/`
53-
- 각 시트는 `originalName`(원본 시트명)으로 파일 생성
54-
- CSV/TXT에는 31자 제한 없음(엑셀 전용 제한). 파일명은 안전화 및 최대 100자 제한
51+
- 디렉토리/파일명 및 포맷팅 규칙 (시트별 내보내기)
52+
- 출력 디렉토리: `<출력파일베이스>`로 단순화 (확장자 접미사 제거)
53+
- 예: `output="d:/temp/report.csv"``d:/temp/report/`
54+
- 각 시트는 `originalName`(원본 시트명)으로 파일 생성 (파일시스템 안전화, 최대 100자)
55+
- CSV 인용/이스케이프는 `.csv`일 때만 적용, 비-CSV는 인용 없이 기록
56+
- CSV/TXT 모두 필드 내부 줄바꿈(\r/\n)을 공백으로 정규화
57+
- 날짜 값은 CSV/TXT 및 SQL 리터럴에서 `yyyy-MM-dd HH:mm:ss`(24시간) 형식으로 직렬화
5558

5659
이전 버전(v1.2.11)
5760

@@ -385,8 +388,11 @@ sql2excel.exe --mode=help
385388
- `.csv` → 시트별 CSV
386389
- 그 외 → 시트별 TXT (탭 구분)
387390
- 출력 디렉토리 및 파일명
388-
- 출력은 `<출력파일베이스>_<확장자>` (점 제외) 하위에 생성
391+
- 출력은 `<출력파일베이스>` 하위에 생성 (v1.3.2 변경)
389392
- 파일명은 시트 `originalName` 사용 (파일시스템 안전화, 최대 100자). 31자 제한 없음(엑셀 전용)
393+
- 포맷팅: `.csv`는 CSV 인용/이스케이프 적용, 비-CSV는 인용 없음
394+
- 내부 줄바꿈(\r/\n)은 CSV/TXT 모두 공백으로 정규화
395+
- 날짜 직렬화: `yyyy-MM-dd HH:mm:ss` (24시간)
390396

391397
## 🎨 템플릿 스타일 시스템
392398

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "sql2excel",
3-
"version": "1.3.1",
3+
"version": "1.3.2",
44
"description": "SQL 쿼리 결과를 엑셀 파일로 저장하는 도구 (시트별 쿼리, 변수, XML/JSON 지원)",
55
"main": "app.js",
66
"scripts": {

0 commit comments

Comments
 (0)