<table> 데이터로 가득 찬 HTML 파일이나 스크랩된 웹 페이지가 폴더에 있습니다 — 재무 보고서, 제품 카탈로그, 내보낸 분석 대시보드 — 그리고 분석가가 정렬, 필터링, 합산, 피벗할 수 있도록 실제 Excel 스프레드시트로 변환해야 합니다. 각 파일을 브라우저에서 열어 테이블을 Excel에 복사-붙여넣기하면 두 번째 파일 후 수식이 깨지고 서식이 망가집니다. Total HTML Converter X는 GUI 없이, Microsoft Excel 설치 없이 명령줄에서 HTML 파일을 XLS로 일괄 변환합니다. Windows 서버에 설치하고 스크립트나 ActiveX를 통해 호출하면 무인으로 실행됩니다.
*.html)를 전달하면 변환기가 한 번의 실행으로 일치하는 모든 파일을 처리합니다<table>, <tr>, <td>, <th>, colspan 및 rowspan, 셀 콘텐츠에 영향을 미치는 인라인 스타일을 인식합니다
(30일, 이메일 불필요)
(서버 라이선스, 영구)
Windows 7/8/10/11 • Server 2008/2012/2016/2019/2022
HTML은 표 형식 데이터를 표시하지만 스프레드시트로 저장하지 않습니다. 브라우저의 <table>은 읽기 전용 마크업입니다 — 열을 정렬할 수도, 행을 필터링할 수도, SUM 수식을 작성할 수도, 피벗을 만들 수도 없습니다. 숫자는 셀 내부의 텍스트일 뿐, 분석가가 계산할 수 있는 숫자 값이 아닙니다.
XLS는 동일한 데이터를 작동하는 스프레드시트로 변환하는 Microsoft Excel 형식입니다. 각 셀은 형식이 지정된 값(숫자, 날짜, 문자열)을 보유하며 수식, 정렬, 필터링, 조건부 서식, 피벗 테이블을 지원합니다. HTML 페이지 안에 갇힌 데이터가 분석 워크플로에 들어가야 할 때, 먼저 XLS가 되어야 합니다.
| HTML | XLS | |
|---|---|---|
| 데이터 유형 | <td> 태그 내부의 텍스트 | 형식이 지정된 셀 값(숫자, 날짜, 문자열) |
| 정렬 및 필터링 | 지원되지 않음 | Excel에 내장됨 |
| 수식 | 없음 | SUM, AVERAGE, VLOOKUP, 피벗 테이블 |
| 대상 | 웹 방문자 | 분석가, 회계사, 재무 팀 |
| 워크플로 | 웹 표시 | 보고, 모델링, BI 가져오기 |
위의 링크에서 설치 프로그램을 다운로드하고 Windows 서버 또는 워크스테이션에서 실행합니다. 설치는 1분 이내에 완료됩니다. 브라우저나 Microsoft Excel 설치는 필요하지 않습니다 — 변환기는 HTML을 분석하고 자체 엔진을 사용하여 XLS를 직접 작성하며, HTML 테이블, colspan 및 rowspan, 임베디드 CSS 스타일을 완전히 지원합니다.
cmd.exe 또는 PowerShell을 엽니다. 변환기 실행 파일은 설치 폴더(일반적으로 C:\Program Files\CoolUtils\TotalHTMLConverterX\)에 있는 HTMLConverter.exe입니다. 시스템 PATH에 추가하거나 명령에서 전체 경로를 사용하십시오.
가장 간단한 명령은 폴더의 모든 HTML 파일을 XLS로 변환합니다:
HTMLConverter.exe C:\Pages\*.html C:\Output\ -c XLS
이 명령은 C:\Pages\의 모든 .html 파일을 처리하고 결과 XLS 파일을 C:\Output\에 저장합니다. 각 HTML 파일은 같은 기본 이름으로 하나의 XLS를 생성합니다. 소스의 테이블은 셀 범위로 들어가고, 숫자 문자열은 분석가가 계산할 수 있는 숫자 값이 됩니다.
추가 플래그로 XLS 출력을 제어합니다:
HTMLConverter.exe C:\Pages\*.html C:\Output\ -c XLS -CodePage 65001 -Sheet ReportData -log C:\Logs\html2xls.log
-CodePage 65001 — 인코딩 설정(65001 = UTF-8, 1252 = 서구권, 1251 = 키릴 문자, 932 = Shift-JIS)-Sheet ReportData — XLS 내부의 워크시트 이름 지정-FirstRowAsHeader 1 — 각 테이블의 첫 번째 행을 XLS의 헤더 행으로 표시-log C:\Logs\html2xls.log — 확인용 변환 로그 작성명령을 .bat 파일에 저장하고 Windows 작업 스케줄러로 예약합니다:
@echo off "C:\Program Files\CoolUtils\TotalHTMLConverterX\HTMLConverter.exe" C:\Incoming\*.html C:\Archive\XLS\ -c XLS -CodePage 65001 -Sheet Data -log C:\Logs\html2xls.log
이렇게 하면 매일 밤(또는 설정한 간격으로) 변환이 실행되고 결과를 확인할 수 있는 로그 파일이 기록됩니다. C:\Incoming\에 새로운 HTML 보고서 배치를 넣으면 다음 날 아침 C:\Archive\XLS\에서 XLS 파일을 가져올 수 있습니다.
Total HTML Converter X에는 완전한 ActiveX 인터페이스가 포함되어 있습니다. .NET, VBScript, PHP, Python, Ruby, ASP 등 모든 COM 호환 환경에서 변환기를 호출할 수 있습니다. 이를 통해 명령줄 프로세스를 별도로 실행하지 않고도 자체 웹 애플리케이션, 인트라넷 포털 또는 보고 서비스에 HTML-to-XLS 변환을 내장할 수 있습니다.
예제 (C#/.NET):
HTMLConverterX Cnv = new HTMLConverterX();
Cnv.Convert("C:\\Pages\\report.html", "C:\\Output\\report.xls", "-c XLS -CodePage 65001 -log c:\\Logs\\html.log");
예제 (PHP):
$c = new COM("HTMLConverter.HTMLConverterX");
$c->convert("C:\\Pages\\report.html", "C:\\Output\\report.xls", "-c XLS -CodePage 65001 -log c:\\Logs\\html.log");
동일한 호출이 ASP.NET, VBScript, Python, Ruby, Perl, JavaScript(Windows Script Host)에서도 작동합니다. 웹 애플리케이션에서 업로드된 HTML 페이지나 URL을 수신하고 실시간으로 작동하는 XLS 스프레드시트를 사용자에게 반환할 수 있습니다.
| 기능 | 온라인 변환기 | Total HTML Converter X |
|---|---|---|
| 일괄 처리 | 한 번에 한 파일 | 배치당 무제한 파일 |
| 파일 프라이버시 | 파일이 제3자 서버에 업로드됨 | 파일이 사용자 컴퓨터를 떠나지 않음 |
| 테이블 구문 분석 | 기본적, 병합된 셀이 종종 깨짐 | 완전한 <table> 지원, colspan/rowspan 보존 |
| 숫자 값 | 종종 텍스트 문자열로 저장됨 | 숫자가 숫자 셀로 들어가 수식이 작동함 |
| 인코딩 제어 | 자동으로 추측됨 | 명시적 -CodePage 플래그, 추측 없음 |
| 자동화 | 수동 전용 | 명령줄, .bat, 작업 스케줄러, ActiveX |
| 서버 배포 | 불가능 | 서버용 설계, GUI 불필요 |
| Excel 설치 필요 | 해당 없음 | 아니오 |
| 인터넷 필요 | 예 | 아니오 |
변환기는 유효한 XLS 파일을 직접 작성합니다. 서버에 Microsoft Office, LibreOffice 또는 스프레드시트 애플리케이션을 설치할 필요가 없습니다. 이를 통해 라이선스 비용과 무인 시나리오에서 Excel 자동화의 잘 알려진 불안정성을 피할 수 있습니다 — 고아 EXCEL.EXE 프로세스, DCOM ID 문제, 무작위 중단이 없습니다.
Total HTML Converter X는 무인 사용을 위해 설계되었습니다. GUI 창, 대화 상자, 확인 프롬프트가 없습니다. 명령줄 또는 서비스의 일부로 조용히 실행됩니다 — 프로덕션 서버에 필요한 바로 그 방식입니다. Windows 예약 작업으로 또는 CI 파이프라인의 일부로 실행하는 것이 간단합니다.
XLS 출력에는 A 열에 쏟아 부은 텍스트 더미가 아니라 형식이 지정된 셀 값이 포함됩니다. 숫자는 숫자, 날짜는 날짜, 문자열은 문자열입니다. Excel의 정렬, 필터링, 수식이 후처리 없이 결과에서 작동합니다. 소스 HTML의 헤더 행과 병합된 셀은 스프레드시트에 그대로 전달됩니다.
같은 명령줄 도구로 HTML을 PDF, DOC, TIFF, JPEG, RTF, TXT 등으로 변환할 수 있습니다. 하나의 설치로 모든 HTML 변환 요구 사항을 충족합니다. -c XLS를 -c PDF로 변경하면 동일한 일괄 처리 및 자동화 기능으로 PDF 출력을 얻을 수 있습니다 — 재무팀이 XLS를 원하지만 법무팀이 동일한 소스의 서명된 PDF를 원할 때 유용합니다.
(30일, 이메일이나 신용카드 불필요)
(서버 라이선스, 영구)
Windows 7/8/10/11 • Server 2008/2012/2016/2019/2022
"우리는 매일 밤 12개의 공개 카탈로그 사이트에서 경쟁사 가격을 가져옵니다. 페이지는 HTML 테이블이지만, 가격 모델은 Excel에 있습니다. Total HTML Converter X는 .bat 작업 하나로 스크랩된 페이지를 올바른 형식의 숫자 셀이 있는 XLS 파일로 변환하여 VLOOKUP이 즉시 작동합니다. -CodePage 플래그는 이전 도구가 망가뜨리던 강세 표시가 있는 제품 이름을 수정했습니다."
Priya Ramanathan Senior Data Analyst, Retail Analytics
"우리 SaaS는 고객용 HTML 보고서를 내보내지만 엔터프라이즈 클라이언트는 계속 XLS를 요청합니다. ActiveX 인터페이스를 PHP 백엔드에 내장하여 동일한 HTML 보고서를 주문형으로 작동하는 스프레드시트로 제공할 수 있게 했습니다. COM 호출은 A 열에 텍스트를 쏟아 붓는 것이 아니라 정렬 가능한 열이 있는 실제 XLS를 반환합니다. 같은 주에 서버 스택에서 Excel 자동화를 제거했습니다."
Tobias Kleinmann Backend Developer, Reporting Platform
"수천 페이지에 걸쳐 예산 데이터를 HTML 테이블로 표시하는 레거시 인트라넷을 마이그레이션했습니다. XLS로의 대량 변환은 단일 Windows Server 2019 박스에서 주말 동안 실행되었으며 Office 라이선스가 필요 없었고, 재무팀은 결과 스프레드시트를 새 시스템으로 바로 가져왔습니다. 더 모호한 플래그에 대한 문서는 더 풍부할 수 있지만, 인코딩 질문에 대해 지원팀은 하루 안에 답변했습니다."
Rosa Fernandez IT Manager, Municipal Government
HTMLConverter.exe C:\Pages\*.html C:\Output\ -c XLS입니다. 이 명령은 소스 폴더의 모든 HTML 파일을 XLS로 변환합니다. -CodePage 65001, -Sheet ReportData, -log 같은 플래그를 추가하여 출력을 제어할 수 있습니다.<table>, <tr>, <td>, <th> 요소가 XLS의 행과 열에 매핑됩니다. Colspan과 rowspan은 병합된 셀로 보존됩니다. 숫자 문자열은 SUM, AVERAGE, 피벗 테이블에서 작동하는 숫자 값이 됩니다.-CodePage 플래그를 사용합니다. -CodePage 65001은 UTF-8, 1252는 서유럽, 1251은 키릴 문자, 932는 Shift-JIS입니다. 소스 HTML에 선언된 인코딩과 일치하도록 설정하면 셀 내용이 손상 없이 XLS에 들어갑니다.HTMLConverter.HTMLConverterX)로 등록됩니다. .NET, PHP, Python, VBScript, ASP, Ruby, Perl 및 기타 모든 COM 호환 환경에서 호출하여 자체 웹 앱 안에서 주문형으로 HTML을 XLS로 변환할 수 있습니다.-Sheet YourSheetName을 전달하면 결과 워크북이 기본값 대신 해당 이름을 워크시트에 사용합니다. XLS가 특정 시트 이름을 찾는 다운스트림 시스템에 공급될 때 유용합니다.
string src = @"C:\test\Source.html";
string dest = @"C:\test\Dest.pdf";
var cnv = new HTMLConverterX();
cnv.Convert(src, dest, "-cPDF -log c:\\test\\HTML.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\HTMLConverterX.exe";
sbLogs.AppendLine(executablePath + "...");
var srcPath = $@"{assemblyDirectoryPath}\src\sample.html";
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}\" -cPDF";
using (Process exeProcess = Process.Start(startInfo))
{
sbLogs.AppendLine($"wait...{DateTime.Now.ToString()}");
exeProcess.WaitForExit();
sbLogs.AppendLine($"complete...{DateTime.Now.ToString()}");
}
sbLogs.AppendLine("Conversion complete.");
}
catch (Exception ex)
{
sbLogs.AppendLine(ex.ToString());
}
return new OkObjectResult(sbLogs);
}
}
dim C
Set C=CreateObject("HTMLConverter.HTMLConverterX")
C.Convert "c:\source.html", "c:\dest.jpg", "-cJPG -log c:\html.log"
C.Convert "https://www.coolutils.com/", "c:\URL Page.pdf", "-cPDF -log c:\html.log"
Response.Write C.ErrorMessage
set C = nothing
dim C
Set C=CreateObject("HTMLConverter.HTMLConverterX")
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.html", "C:\www\ASP", "-cpdf -log c:\html.log")
set C = nothing
$src="C:\\test\\test.html";
$dest="C:\\test\\test.pdf";
if (file_exists($dest)) unlink($dest);
$c= new COM("HTMLConverter.HTMLConverterX");
$c->convert($src,$dest, "-cPDF -log c:\\HTML.log");
if (file_exists($dest)) echo "OK"; else echo "fail:".$c->ErrorMessage;
require 'win32ole'
c = WIN32OLE.new('HTMLConverter.HTMLConverterX')
src = "C:\\test\\test.html"
dest = "C:\\test\\test.pdf"
c.convert(src, dest, "-cPDF -log c:\\test\\HTML.log")
if not File.exist?(dest)
puts c.ErrorMessage
end
import win32com.client
import os.path
c = win32com.client.Dispatch("HTMLConverter.HTMLConverterX")
src = "C:\\test\\test.html"
dest = "C:\\test\\test.pdf"
c.convert(src, dest, "-cPDF -log c:\\test\\HTML.log")
if not os.path.exists(dest):
print(c.ErrorMessage)
uses Dialogs, Vcl.OleAuto;
var
c: OleVariant;
begin
c := CreateOleObject('HTMLConverter.HTMLConverterX');
c.Convert('c:\test\source.html', 'c:\test\dest.pdf', '-cPDF -log c:\test\HTML.log');
if c.ErrorMessage <> '' then
ShowMessage(c.ErrorMessage);
end;
var c = new ActiveXObject("HTMLConverter.HTMLConverterX");
c.Convert("C:\\test\\source.html", "C:\\test\\dest.pdf", "-cPDF");
if (c.ErrorMessage != "")
alert(c.ErrorMessage)
use Win32::OLE; my $src = "C:\\test\\test.html"; my $dest = "C:\\test\\test.pdf"; my $c = CreateObject Win32::OLE 'HTMLConverter.HTMLConverterX'; $c->convert($src, $dest, "-cPDF -log c:\\test\\HTML.log"); print $c->ErrorMessage if -e $dest;
무료 평가판을 다운로드하고 몇 분 만에 파일을 변환하세요.
신용카드나 이메일이 필요하지 않습니다.