Total Excel Converter Xをダウンロードして、サーバーでのXLSX-to-PDF変換の自動化を今すぐ始めましょう。
(30日間の無料トライアル付き)
(サーバーライセンス)
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をサポートする任意の言語から呼び出せます。これにより、プロセスを起動することなく、Webアプリケーション、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)を渡せば、フォルダー内のすべてのスプレッドシートを1つのコマンドで変換できます。複数のXLSXファイルを1つのPDFに結合したり、各ワークシートを個別のファイルに分割できます。内蔵のリネーム機能がカウンターやシート名を出力ファイル名に自動的に付加します。
ユーザーパスワード(PDFを開くために必要)とオーナーパスワード(印刷、コピー、編集の権限を制御)をコマンドラインから直接設定できます。財務報告書、給与表、コンプライアンス文書を手作業なしで保護できます。
用紙サイズ(A4、Letter、Legal、カスタム)、向き、余白をフラグで指定できます。ページ番号、日付、ファイル名、またはカスタムテキストを含むヘッダーとフッターを追加できます。幅の広いテーブルを自動的にページ幅に合わせます。
すべての変換はステータスとエラーをログファイルに書き込みます。メッセージボックスなし、ポップアップなし、ユーザープロンプトなし。アプリケーションからログを監視したり、集中ログシステムに送信できます。
PDFの他にも、XLSXをDOC、DOCX、HTML、CSV、TIFF、JPEG、XML、TXT、ODS、SQL、LaTeXなどに変換できます — すべて同じコマンドライン構文です。1つのツールでパイプラインに必要なすべての形式をカバーします。
| 機能 | オンラインツール | Total Excel Converter X |
|---|---|---|
| ファイルサイズ制限 | 10–100 MB | 制限なし |
| バッチ変換 | 限定または有料API | 無制限(ワイルドカード) |
| プライバシー | ファイルがクラウドにアップロード | 100%ローカル処理 |
| PDF暗号化 | ほとんど利用不可 | 内蔵(ユーザー+オーナーパスワード) |
| ページレイアウト制御 | 最小限 | 完全(サイズ、余白、ヘッダー) |
| サーバー統合 | REST API(有料) | COM/ActiveX + コマンドライン |
| Office依存 | なし(クラウド) | なし(スタンドアロンパーサー) |
| 自動化 | 手動またはAPI呼び出し | .batファイル + タスクスケジューラ |
| 価格 | 月額サブスクリプション | 一回払いサーバーライセンス |
(30日間の無料トライアル付き)
(サーバーライセンス)
"毎晩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;
無料トライアルをダウンロードして、ファイルを数分で変換。
クレジットカードもメールアドレスも不要。