Total Excel Converter X를 다운로드하여 서버에서 XLSX-to-PDF 변환 자동화를 오늘 시작하세요.
XLSX는 편집 가능한 스프레드시트 형식입니다. 레이아웃은 설치된 글꼴, Excel 버전, 프린터 드라이버에 따라 달라지며 — 같은 파일이 다른 컴퓨터에서 다르게 표시됩니다. 수신자가 셀 값을 변경하거나, 수식을 깨뜨리거나, 공유할 의도가 없는 데이터를 볼 수 있습니다.
PDF는 페이지 레이아웃을 고정합니다. 글꼴이 포함되고, 구조가 잠기며, 모든 뷰어가 동일한 결과를 표시합니다. PDF 암호화로 열람, 인쇄, 복사 권한을 제어할 수 있습니다.
서버에서는 이 차이가 더욱 중요합니다. 모니터도 마우스도 Excel 설치도 없습니다. 명령줄 변환기는 자체 파서로 XLSX 파일을 읽고, 서식 규칙을 적용하고, 완성된 PDF를 출력합니다 — 사람의 개입도 Microsoft Office 의존성도 없습니다.
| 기능 | XLSX | |
|---|---|---|
| 편집 가능성 | 완전히 편집 가능 | 열람 및 인쇄 전용 |
| 레이아웃 일관성 | 시스템에 따라 다름 | 어디서나 동일 |
| 글꼴 포함 | 아니오 | 예 |
| 비밀번호 보호 | 제한적 | 완전(열람, 인쇄, 복사 제어) |
| 필요한 뷰어 | Excel 또는 호환 앱 | 모든 PDF 리더(무료) |
| 서버 친화성 | Office 또는 파서 필요 | 정적 파일, 특별한 소프트웨어 불필요 |
ExcelConverterX.exe C:\Data\report.xlsx C:\Output\report.pdf -cPDFExcelConverterX.exe C:\Data\*.xlsx C:\Output\ -cPDF -PageSize:A4 -LandscapeExcelConverterX.exe C:\Data\*.xlsx C:\Output\ -cPDF -OwnerPassword:secret -UserPassword:open123 -log C:\Logs\excel.log
모든 오류 메시지는 로그 파일에 기록됩니다. 변환기는 자동으로 종료되므로 스크립트와 예약 작업이 중단 없이 실행됩니다.
Total Excel Converter X는 COM 개체(ExcelConverter.ExcelConverterX)를 등록하여 COM/ActiveX를 지원하는 모든 언어에서 호출할 수 있습니다. 이를 통해 프로세스를 실행하지 않고 웹 애플리케이션, ERP 시스템 또는 데이터 파이프라인 내에서 XLSX를 PDF로 변환할 수 있습니다.
.NET (C#):
ExcelConverterX cnv = new ExcelConverterX();
cnv.Convert(@"C:\Data\report.xlsx", @"C:\Output\report.pdf",
"-cPDF -PageSize:A4 -log C:\Logs\excel.log");PHP:
$c = new COM("ExcelConverter.ExcelConverterX");
$c->convert("C:\\Data\\report.xlsx", "C:\\Data\\report.pdf",
"-cPDF -log C:\\Logs\\excel.log");Python:
import win32com.client
c = win32com.client.Dispatch("ExcelConverter.ExcelConverterX")
c.convert(r"C:\Data\report.xlsx", r"C:\Data\report.pdf",
"-cPDF -log C:\Logs\excel.log")ASP, Ruby, Pascal, Perl, JavaScript (WSH)도 지원됩니다. 더 많은 예제는 제품 페이지를 참조하세요.
변환기는 자체 파서로 XLSX, XLS, XLSM, ODS, XML 및 기타 스프레드시트 형식을 읽습니다. Microsoft Excel이 필요 없습니다. 그래픽 인터페이스가 없으며 콘솔 프로세스 또는 COM 개체로 실행되어 대화형 서비스가 비활성화된 Windows Server 환경에서도 안전합니다.
와일드카드(*.xlsx)를 전달하면 폴더의 모든 스프레드시트를 하나의 명령으로 변환할 수 있습니다. 여러 XLSX 파일을 하나의 PDF로 결합하거나 각 워크시트를 별도의 파일로 분할할 수 있습니다. 내장 리네이머가 카운터 또는 시트 이름을 출력 파일명에 자동으로 추가합니다.
사용자 비밀번호(PDF를 열기 위해 필요)와 소유자 비밀번호(인쇄, 복사, 편집 권한 제어)를 명령줄에서 직접 설정할 수 있습니다. 재무 보고서, 급여 테이블, 규정 준수 문서를 수동 단계 없이 보호할 수 있습니다.
용지 크기(A4, Letter, Legal, 사용자 정의), 방향, 여백을 플래그로 지정할 수 있습니다. 페이지 번호, 날짜, 파일 이름 또는 사용자 정의 텍스트가 포함된 머리글과 바닥글을 추가할 수 있습니다. 넓은 테이블을 페이지 너비에 자동으로 맞춥니다.
모든 변환은 상태와 오류를 로그 파일에 기록합니다. 메시지 박스 없음, 팝업 없음, 사용자 프롬프트 없음. 애플리케이션에서 로그를 모니터링하거나 중앙 로그 시스템으로 전송할 수 있습니다.
PDF 외에도 XLSX를 DOC, DOCX, HTML, CSV, TIFF, JPEG, XML, TXT, ODS, SQL, LaTeX 등으로 변환할 수 있습니다 — 모두 동일한 명령줄 구문입니다. 하나의 도구로 파이프라인에 필요한 모든 형식을 지원합니다.
| 기능 | 온라인 도구 | Total Excel Converter X |
|---|---|---|
| 파일 크기 제한 | 10–100 MB | 제한 없음 |
| 일괄 변환 | 제한적 또는 유료 API | 무제한(와일드카드) |
| 개인정보 보호 | 파일이 클라우드에 업로드됨 | 100% 로컬 처리 |
| PDF 암호화 | 거의 사용 불가 | 내장(사용자 + 소유자 비밀번호) |
| 페이지 레이아웃 제어 | 최소한 | 완전(크기, 여백, 머리글) |
| 서버 통합 | REST API(유료) | COM/ActiveX + 명령줄 |
| Office 의존성 | 없음(클라우드) | 없음(독립 파서) |
| 자동화 | 수동 또는 API 호출 | .bat 파일 + 작업 스케줄러 |
| 가격 | 월간 구독 | 일회성 서버 라이선스 |
"매일 밤 400건 이상의 재무 보고서를 처리합니다. Total Excel Converter X가 작업 스케줄러 뒤에서 동작하며, 수신되는 모든 XLSX 파일을 암호화된 PDF로 변환하고 모든 것을 로그에 기록합니다. 2년 전 설정한 이후 수동 개입이 전혀 없었습니다."
Daniel Krause DevOps Engineer
"ActiveX 통합 덕분에 개발 기간을 몇 주나 단축했습니다. PHP 코드 3줄로 인트라넷 앱이 업로드된 스프레드시트를 실시간으로 PDF로 변환합니다. Office 의존성 없음, 임시 파일 정리 문제 없음."
Mariana Costa Senior PHP Developer
"견고한 명령줄 도구입니다. Windows Server 2019 환경에서 XLS 및 XLSX의 PDF 일괄 변환을 문제없이 처리합니다. 로그 출력이 깔끔하고 모니터링 스택과의 통합도 쉽습니다."
James Whitfield IT Infrastructure Manager
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;
무료 평가판을 다운로드하고 몇 분 만에 파일을 변환하세요.
신용카드나 이메일이 필요하지 않습니다.