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 파일 + 작업 스케줄러 |
| 가격 | 월간 구독 | 일회성 서버 라이선스 |
string src = @"C:\test\Source.xlsx";
string dest = @"C:\test\Dest.pdf";
var cnv = new ExcelConverterX();
cnv.Convert(src, dest, "-cPDF -log c:\\test\\Excel.log");
if (!string.IsNullOrEmpty(cnv.ErrorMessage))
throw new Exception(cnv.ErrorMessage);
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 srcPath = $@"{assemblyDirectoryPath}\src\sample.xlsx";
var outPath = Path.GetTempFileName() + ".pdf";
startInfo.FileName = executablePath;
if (File.Exists(outPath))
{
File.Delete(outPath);
}
if (File.Exists(executablePath) && File.Exists(srcPath))
{
sbLogs.AppendLine("files exists...");
}
else
sbLogs.AppendLine("EXE & source files NOT exists...");
startInfo.WindowStyle = ProcessWindowStyle.Hidden;
startInfo.Arguments = $"{srcPath} {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"
Response.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.xlsx";
$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(dest):
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.xlsx"; 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;
무료 평가판을 다운로드하고 몇 분 만에 파일을 변환하세요.
신용카드나 이메일이 필요하지 않습니다.