데이터베이스, 분석 파이프라인 또는 보고 대시보드에 공급해야 하는 XLS 및 XLSX 파일이 가득 들어 있는 폴더가 있고 — 대상 시스템은 Excel이 아닌 CSV를 사용합니다. 모든 워크북을 Excel에서 열고 다른 이름으로 저장 → CSV를 클릭하는 것은 두세 개 이상의 파일에는 확장되지 않으며 Excel이 설치되지 않은 서버에서는 완전히 무너집니다. Total Excel Converter X는 GUI 없이, 머신에 Microsoft Office 없이 명령줄에서 Excel 파일을 CSV로 일괄 변환합니다. Windows 서버에 설치하고 스크립트나 ActiveX를 통해 호출하면 무인으로 실행됩니다.
*.xlsx)를 전달하면 변환기가 한 번의 실행으로 일치하는 모든 파일을 처리합니다-CSVDelimiter를 통한 쉼표, 세미콜론, 탭 또는 파이프, 가져오기 도구가 기대하는 모든 것에 일치-EachSheetSeparate로 각 시트를 자체 파일로 분할
(30일, 이메일 불필요)
(서버 라이선스, 영구)
Windows 7/8/10/11 • Server 2008/2012/2016/2019/2022
Excel 파일(XLS, XLSX)은 컨테이너 형식입니다. 워크북에는 여러 시트, 수식, 서식, 차트, 피벗 테이블, 조건부 규칙, 임베디드 객체가 포함됩니다. XLS는 1990년대의 독점 바이너리 형식이고 XLSX는 XML 부분의 ZIP 아카이브입니다. 둘 다 Office 스키마를 이해하는 파서가 필요합니다. 대부분의 데이터베이스와 분석 도구는 어느 것도 직접 읽을 수 없습니다.
CSV는 일반 텍스트입니다 — 한 줄에 한 행, 구분 기호로 분리된 필드. 모든 데이터베이스 엔진, 모든 스크립팅 언어, 모든 BI 도구, 모든 ETL 플랫폼은 변환 없이 CSV를 읽습니다. PostgreSQL COPY, MySQL LOAD DATA INFILE, BigQuery bq load, pandas read_csv, R read.csv — 모두 CSV를 기대합니다. Excel 데이터가 그 파이프라인에 들어가야 할 때, 먼저 CSV가 되어야 합니다.
| Excel (XLS / XLSX) | CSV | |
|---|---|---|
| 형식 | 독점 바이너리 또는 ZIP-XML | 일반 텍스트 |
| 파일당 시트 | 여러 개 | 하나의 테이블 |
| 수식 | 저장 및 재계산 | 평가된 값만 |
| 서식 | 글꼴, 색상, 테두리, 차트 | 없음 |
| 데이터베이스 가져오기 | ODBC 또는 라이브러리 필요 | 모든 엔진에서 기본 |
| 대상 | Office 사용자 | 데이터베이스, 스크립트, ETL 도구 |
위의 링크에서 설치 프로그램을 다운로드하고 Windows 서버 또는 워크스테이션에서 실행합니다. 설치는 1분 이내에 완료됩니다. Microsoft Excel 또는 Office 설치는 필요하지 않습니다 — 변환기는 자체 엔진을 사용하여 XLS와 XLSX를 직접 분석합니다.
cmd.exe 또는 PowerShell을 엽니다. 변환기 실행 파일은 설치 폴더(일반적으로 C:\Program Files\CoolUtils\TotalExcelConverterX\)에 있는 XLSConverter.exe입니다. 시스템 PATH에 추가하거나 명령에서 전체 경로를 사용하십시오.
가장 간단한 명령은 폴더의 모든 Excel 파일을 CSV로 변환합니다:
XLSConverter.exe C:\Reports\*.xlsx C:\Output\ -c CSV
이 명령은 C:\Reports\의 모든 .xlsx 파일을 처리하고 결과 CSV 파일을 C:\Output\에 저장합니다. 각 Excel 파일은 같은 기본 이름으로 하나의 CSV를 생성합니다. 레거시 바이너리 파일을 변환하려면 *.xls를 사용하거나 두 확장자를 한 번에 잡으려면 *.xls*를 사용하세요.
CSV 기본값은 종종 대상 시스템에 맞게 조정해야 합니다. 실제 가져오기 도구는 구분 기호와 코드 페이지에 대해 까다롭습니다:
XLSConverter.exe C:\Reports\*.xlsx C:\Output\ -c CSV -CSVDelimiter ";" -CSVQuotation "\"" -Encoding UTF-8 -log C:\Logs\xls2csv.log
-CSVDelimiter "," — 쉼표(기본값). 유럽 로케일의 경우 ";", 탭으로 구분된 경우 "\t", 파이프의 경우 "|" 사용-CSVQuotation "\"" — 구분 기호, 따옴표 또는 줄 바꿈이 포함된 필드를 큰따옴표로 래핑-Encoding UTF-8 — UTF-8 출력 강제. 대상 시스템이 요구하는 대로 UTF-16, Windows-1251, Windows-1252 또는 ISO-8859-1 사용-EachSheetSeparate — 다중 시트 워크북을 시트당 하나의 CSV로 분할, {file}_{sheet}.csv로 명명-log C:\Logs\xls2csv.log — 확인용 변환 로그 작성명령을 .bat 파일에 저장하고 Windows 작업 스케줄러로 예약합니다:
@echo off "C:\Program Files\CoolUtils\TotalExcelConverterX\XLSConverter.exe" C:\Incoming\*.xlsx C:\Archive\CSV\ -c CSV -CSVDelimiter ";" -Encoding UTF-8 -EachSheetSeparate -log C:\Logs\xls2csv.log
이렇게 하면 매일 밤(또는 설정한 간격으로) 변환이 실행되고 결과를 확인할 수 있는 로그 파일이 기록됩니다. 새로운 XLSX 파일을 C:\Incoming\에 떨어뜨리면 다음 예약된 실행이 이를 가져갑니다.
Total Excel Converter X에는 완전한 ActiveX 인터페이스가 포함되어 있습니다. .NET, VBScript, PHP, Python, Ruby, ASP 등 모든 COM 호환 환경에서 변환기를 호출할 수 있습니다. 이를 통해 명령줄 프로세스를 별도로 실행하지 않고도 자체 ETL 작업, 웹 업로드 양식 또는 보고 서비스에 Excel-to-CSV 변환을 내장할 수 있습니다.
예제 (C#/.NET):
XLSConverterX Cnv = new XLSConverterX();
Cnv.Convert("C:\\Reports\\sales.xlsx", "C:\\Output\\sales.csv", "-c CSV -CSVDelimiter \";\" -Encoding UTF-8 -log c:\\Logs\\xls.log");
예제 (PHP):
$c = new COM("XLSConverter.XLSConverterX");
$c->convert("C:\\Reports\\sales.xlsx", "C:\\Output\\sales.csv", "-c CSV -CSVDelimiter \";\" -Encoding UTF-8 -log c:\\Logs\\xls.log");
동일한 호출이 ASP.NET, VBScript, Python, Ruby, Perl, JavaScript(Windows Script Host)에서도 작동합니다. 애플리케이션은 업로드된 XLSX 파일을 수락하고 데이터베이스나 분석 도구로 직접 수집할 준비가 된 CSV를 반환할 수 있습니다.
| 기능 | 온라인 변환기 | Total Excel Converter X |
|---|---|---|
| 일괄 처리 | 한 번에 한 파일 | 배치당 무제한 파일 |
| 파일 프라이버시 | 파일이 제3자 서버에 업로드됨 | 파일이 사용자 컴퓨터를 떠나지 않음 |
| 파일 크기 제한 | 일반적으로 5–25 MB | 없음 — 기가바이트 워크북 지원 |
| 구분 기호 / 인코딩 제어 | 드물거나 숨겨짐 | 플래그를 통한 완전한 제어 |
| 다중 시트 처리 | 일반적으로 첫 번째 시트만 | -EachSheetSeparate 또는 병합 |
| 자동화 | 수동 전용 | 명령줄, .bat, 작업 스케줄러, ActiveX |
| 서버 배포 | 불가능 | 서버용 설계, GUI 불필요 |
| Excel 설치 필요 | 해당 없음 | 아니오 |
| 인터넷 필요 | 예 | 아니오 |
COPY sales FROM '/data/sales.csv' CSV HEADER를 실행하거나 MySQL에서 LOAD DATA INFILE을 실행합니다. 전체 파이프라인은 GUI 가져오기 도구를 통해 몇 분이 걸리는 파일에 대해 몇 초 안에 실행됩니다.bq load 또는 COPY INTO를 통해 CSV를 기본적으로 수집합니다. 야간 .bat 작업은 그날의 Excel 보고서를 CSV로 변환하고 웨어하우스가 가져오도록 스테이징 버킷에 업로드합니다.read_csv와 R read.csv에서 작업합니다. 소스 데이터가 재무 또는 운영에서 XLSX로 도착할 때, 서버 측 변환기는 누구도 Excel을 만지지 않고 깨끗한 CSV를 생성합니다.-CSVDelimiter와 -Encoding이 설정된 호환 CSV로 내부 Excel 보고서를 변환합니다.변환기는 XLS와 XLSX 파일을 직접 분석합니다. 서버에 Microsoft Office, LibreOffice 또는 스프레드시트 애플리케이션을 설치할 필요가 없습니다. 이를 통해 라이선스 비용과 무인 시나리오에서 Excel 자동화의 잘 알려진 불안정성을 피할 수 있습니다.
Total Excel Converter X는 무인 사용을 위해 설계되었습니다. GUI 창, 대화 상자, 확인 프롬프트가 없습니다. 명령줄 또는 서비스의 일부로 조용히 실행됩니다 — 프로덕션 서버에 필요한 바로 그 방식입니다.
실제 CSV 가져오기 도구는 세부 사항을 신경 씁니다. 유럽 시스템용 세미콜론 구분 기호, 국제 텍스트용 UTF-8, 임베디드 쉼표가 있는 필드용 큰따옴표 래핑. 12개월 시트가 있는 Excel 워크북은 하나의 파일이지만, CSV는 파일당 하나의 테이블을 보유합니다 — -EachSheetSeparate는 워크북을 12개의 명명된 CSV 파일로 분할하며 각각은 별도의 수집을 위해 준비됩니다. 모든 세부 사항이 명령줄 플래그로 노출되므로 출력은 다운스트림 파이프라인이 첫 시도에 기대하는 모든 것과 일치합니다.
같은 명령줄 도구로 Excel을 PDF, DOC, HTML, XML, JSON, ODS, TIFF, JPEG 등으로 변환할 수 있습니다. 하나의 설치로 모든 Excel 변환 대상을 다룹니다. -c CSV를 -c PDF로 변경하면 동일한 일괄 처리 및 자동화 기능으로 PDF 보고서를 얻을 수 있습니다.
(30일, 이메일이나 신용카드 불필요)
(서버 라이선스, 영구)
Windows 7/8/10/11 • Server 2008/2012/2016/2019/2022
"우리 파이프라인은 매일 지역 매장 관리자로부터 200개 이상의 XLSX 파일을 수집하고 COPY를 통해 Postgres에 로드합니다. 취약한 Python 및 openpyxl 스크립트를 .bat 작업의 XLSConverter.exe로 교체했습니다. 세미콜론 구분 기호와 UTF-8 플래그는 첫 실행에 독일어와 폴란드어 문자 문제를 해결했습니다. 동일한 야간 배치의 처리량이 40분에서 5분 이하로 줄었습니다."
Priya Raghavan Data Engineer, Retail Analytics
"임원 대시보드를 위해 매월 Excel 워크북을 BigQuery에 공급합니다. -EachSheetSeparate 플래그가 빠진 부분이었습니다 — 시트당 하나의 CSV가 비즈니스 라인당 하나의 스테이징 테이블에 깨끗하게 매핑됩니다. 더 이상 Excel에서 시트별 수동 내보내기가 없습니다. COM 인터페이스는 동일한 도구가 내부 업로드 포털에 서비스를 제공하도록 합니다."
Daniel Kowalski BI Analyst, Insurance Group
"ActiveX 클래스를 통해 XLSConverter를 브로커 보고서를 처리하는 .NET 서비스에 통합했습니다. 시트 간 참조가 있는 더 큰 워크북에서도 수식 평가가 올바르게 작동합니다. 인코딩 플래그는 우리 이탈리아어 및 프랑스어 입력을 깨끗하게 처리합니다. 더 드문 플래그 중 일부에 대한 문서가 더 자세할 수 있지만, 지원팀은 영업일 안에 내 질문에 답변했습니다."
Sofia Marchetti ETL Developer, FinTech Platform
XLSConverter.exe C:\Reports\*.xlsx C:\Output\ -c CSV입니다. 이 명령은 소스 폴더의 모든 XLSX 파일을 CSV로 변환합니다. 출력을 제어하려면 -CSVDelimiter ";", -Encoding UTF-8 또는 -EachSheetSeparate 같은 플래그를 추가하세요.-CSVDelimiter 플래그를 사용하세요. 쉼표(기본값)의 경우 ",", 세미콜론(유럽 로케일에서 일반적)의 경우 ";", 탭의 경우 "\t" 또는 파이프의 경우 "|"를 전달합니다. 명령줄에서 값을 큰따옴표로 래핑하세요.-Encoding UTF-8을 추가합니다. 다른 지원되는 코드 페이지에는 UTF-16, Windows-1251, Windows-1252, ISO-8859-1 등이 있습니다. 비ASCII 문자가 그대로 살아남도록 데이터베이스 또는 가져오기 도구가 기대하는 것과 일치하도록 인코딩을 설정하세요.-EachSheetSeparate를 추가하면 변환기는 시트당 하나의 CSV를 생성하며, {file}_{sheet}.csv로 명명됩니다. 각 시트를 다른 데이터베이스 테이블에 로드할 때마다 이 모드를 사용하세요.
string src="C:\\test\\Source.xlsx";
string dest="C:\\test\\Dest.PDF";
ExcelConverterX Cnv = new ExcelConverterX();
Cnv.Convert(src, dest, "-c PDF -log c:\\test\\Excel.log");
MessageBox.Show("Convert complete!");
public static class Function1
{
[FunctionName("Function1")]
public static async Task Run(
[HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req,
ILogger log)
{
StringBuilder sbLogs = new StringBuilder();
sbLogs.AppendLine("started...");
try
{
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.CreateNoWindow = true;
startInfo.UseShellExecute = false;
var assemblyDirectoryPath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
assemblyDirectoryPath = assemblyDirectoryPath.Substring(0, assemblyDirectoryPath.Length - 4);
var executablePath = $@"{assemblyDirectoryPath}\Converter\ExcelConverterX.exe";
sbLogs.AppendLine(executablePath + "...");
var msgPath = $@"{assemblyDirectoryPath}\MSG\MSG-1.xlsx";
var outPath = Path.GetTempFileName() + ".pdf";
startInfo.FileName = executablePath;
if (File.Exists(outPath))
{
File.Delete(outPath);
}
if (File.Exists(executablePath) && File.Exists(msgPath))
{
sbLogs.AppendLine("files exists...");
}
else
sbLogs.AppendLine("EXE & MSG files NOT exists...");
startInfo.WindowStyle = ProcessWindowStyle.Hidden;
startInfo.Arguments = $"{msgPath} {outPath}";
using (Process exeProcess = Process.Start(startInfo))
{
sbLogs.AppendLine($"wait...{DateTime.Now.ToString()}");
exeProcess.WaitForExit();
sbLogs.AppendLine($"complete...{DateTime.Now.ToString()}");
}
int sleepCounter = 10;
while(!File.Exists(outPath) && sleepCounter > 0)
{
System.Threading.Thread.Sleep(1000);
sbLogs.AppendLine("sleep...");
sleepCounter--;
}
if (File.Exists(outPath))
sbLogs.AppendLine("Conversion complete successfully.");
}
catch (Exception ex)
{
sbLogs.AppendLine(ex.ToString());
}
return new OkObjectResult(sbLogs);
}
}
dim C
Set C=CreateObject("ExcelConverter.ExcelConverterX")
C.Convert "c:\test\source.xlsx", "c:\test\dest.pdf", "-cPDF -log c:\test\Excel.log"
Response.Write C.ErrorMessage
set C = nothing
dim C
Set C=CreateObject("ExcelConverter.ExcelConverterX")
Response.Clear
Response.AddHeader "Content-Type", "binary/octet-stream"
Rresponse.AddHeader "Content-Disposition", "attachment; filename=test.pdf"
Response.BinaryWrite c.ConvertToStream("C:\www\ASP\Source.xlsx", "C:\www\ASP", "-cpdf -log c:\html.log")
set C = nothing
$src="C:\\test\\test.XLS";
$dest="C:\\test\\test.CSV";
if (file_exists($dest)) unlink($dest);
$c= new COM("ExcelConverter.ExcelConverterX");
$c->convert($src,$dest, "-c csv -log c:\\test\\xls.log");
if (file_exists($dest)) echo "OK"; else echo "fail:".$c->ErrorMessage;
require 'win32ole'
c = WIN32OLE.new('ExcelConverter.ExcelConverterX')
src="C:\\test\\test.xlsx";
dest="C:\\test\\test.pdf";
c.convert(src,dest, "-c PDF -log c:\\test\\Excel.log");
if not File.exist?(dest)
puts c.ErrorMessage
end
import win32com.client
import os.path
c = win32com.client.Dispatch("ExcelConverter.ExcelConverterX")
src="C:\\test\\test.xlsx";
dest="C:\\test\\test.pdf";
c.convert(src, dest, "-c PDF -log c:\\test\\Excel.log");
if not os.path.exists(file_path):
print(c.ErrorMessage)
uses Dialogs, Vcl.OleAuto;
var
c: OleVariant;
begin
c:=CreateOleObject('ExcelConverter.ExcelConverterX');
C.Convert('c:\test\source.xlsx', 'c:\test\dest.pdf', '-cPDF -log c:\test\Excel.log');
IF c.ErrorMessage<> Then
ShowMessage(c.ErrorMessage);
end;
var c = new ActiveXObject("ExcelConverter.ExcelConverterX");
c.Convert("C:\\test\\source.xlsx", "C:\\test\\dest.pdf", "-c PDF");
if (c.ErrorMessage!="")
alert(c.ErrorMessage)
use Win32::OLE; my $src="C:\\test\\test.XLS"; my $dest="C:\\test\\test.CSV"; my $c = CreateObject Win32::OLE 'ExcelConverter.ExcelConverterX'; $c->convert($src,$dest, "-c csv -log c:\\test\\xls.log"); print $c->ErrorMessage if -e $dest;
무료 평가판을 다운로드하고 몇 분 만에 파일을 변환하세요.
신용카드나 이메일이 필요하지 않습니다.