通过命令行将CSV转换为DOC, PDF, HTML, TXT, XLS, DBF, XML或OpenOffice格式
Windows
2000/2003/Vista
7/8/10/11
and
2012/2016/2019/2022 Server
and
Docker/Citrix/Wine
Total CSV ConverterX 可作为独立的客户端-服务器应用程序或 Web 服务运行。多线程引擎以最高速度处理大量数据。兼容 IIS、Docker、Citrix 和 Wine。
下载功能完整的 30 天免费试用版。寻找桌面版?请查看 Total CSV Converter。更多产品请访问 CoolUtils Server Products。
string src = @"C:\test\Source.csv";
string dest = @"C:\test\Dest.xlsx";
var cnv = new CSVConverterX();
cnv.Convert(src, dest, "-cXLSX -log c:\\test\\CSV.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\CSVConverterX.exe";
sbLogs.AppendLine(executablePath + "...");
var srcPath = $@"{assemblyDirectoryPath}\src\sample.csv";
var outPath = Path.GetTempFileName() + ".xlsx";
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}\" -cXLSX";
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("CSVConverter.CSVConverterX")
C.Convert "c:\test\source.csv", "c:\test\dest.xlsx", "-cXLSX -log c:\test\CSV.log"
Response.Write C.ErrorMessage
set C = nothing
dim C
Set C=CreateObject("CSVConverter.CSVConverterX")
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.csv", "C:\www\ASP", "-cpdf -log c:\html.log")
set C = nothing
$src="C:\\test\\test.csv";
$dest="C:\\test\\test.xlsx";
if (file_exists($dest)) unlink($dest);
$c= new COM("CSVConverter.CSVConverterX");
$c->convert($src,$dest, "-cXLSX -log c:\\test\\CSV.log");
if (file_exists($dest)) echo "OK"; else echo "fail:".$c->ErrorMessage;
require 'win32ole'
c = WIN32OLE.new('CSVConverter.CSVConverterX')
src = "C:\\test\\test.csv"
dest = "C:\\test\\test.xlsx"
c.convert(src, dest, "-cXLSX -log c:\\test\\CSV.log")
if not File.exist?(dest)
puts c.ErrorMessage
end
import win32com.client
import os.path
c = win32com.client.Dispatch("CSVConverter.CSVConverterX")
src = "C:\\test\\test.csv"
dest = "C:\\test\\test.xlsx"
c.convert(src, dest, "-cXLSX -log c:\\test\\CSV.log")
if not os.path.exists(dest):
print(c.ErrorMessage)
uses Dialogs, Vcl.OleAuto;
var
c: OleVariant;
begin
c := CreateOleObject('CSVConverter.CSVConverterX');
c.Convert('c:\test\source.csv', 'c:\test\dest.xlsx', '-cXLSX -log c:\test\CSV.log');
if c.ErrorMessage <> '' then
ShowMessage(c.ErrorMessage);
end;
var c = new ActiveXObject("CSVConverter.CSVConverterX");
c.Convert("C:\\test\\source.csv", "C:\\test\\dest.xlsx", "-cXLSX");
if (c.ErrorMessage != "")
alert(c.ErrorMessage)
use Win32::OLE; my $src = "C:\\test\\test.csv"; my $dest = "C:\\test\\test.xlsx"; my $c = CreateObject Win32::OLE 'CSVConverter.CSVConverterX'; $c->convert($src, $dest, "-cXLSX -log c:\\test\\CSV.log"); print $c->ErrorMessage if -e $dest;
"我在 Windows 命令行中将 CSV 文件转换为 XLS 文件。我本来打算安装 Office,但 Total CSV Converter X 在没有 Office 的情况下也完成了任务。一款不错的软件,谢谢!"
Ron Duggs
Consumer Settlements
"我们需要从不同的工作表中提取多个 CSV 文件。试了好几个转换器,只有这一个能正常工作。谢谢!"
Gilbert L.
Independent Developer
"客户每晚上传不同方言的交易 CSV:美式逗号分隔、欧式分号分隔、来自老旧大型机的制表符分隔。Total CSV Converter X 在数据进入分析仓库之前,将所有内容按我们的报表架构统一规范为 XLSX。.NET 封装无缝接入我们现有的流水线,在我们的硬件上吞吐量约为每分钟 300 个文件,CLI 在多次运行之间结果保持一致。"
Marek S.
Senior Backend Developer at a fintech
"我们替换掉了原先依赖 Excel-Interop 的流水线,过去每台转换虚拟机都要装 Office。现在那些虚拟机只跑 CSVConverterX.exe,后面挂一个队列。-Recurse -kfs 在输出端保留了合作伙伴的目录层级,-separator 配合自定义字符可以应对所有古怪格式的上传。在 Windows Server Core 上无界面运行,无需 Office,四年生产环境下来没出过意外。"
Aoife K.
DevOps Engineer at a logistics SaaS
"我们以免版税许可证的方式将 Total CSV Converter X 集成到自家的数据迁移产品中。每个项目一次性付费,只是 Aspose.Cells 按开发者订阅价格的零头。我们的安装程序部署并注册 ActiveX,我们的应用直接调用,最终用户只看到我们自己的界面。32 位 ActiveX 限制让我们花了几天时间重做流水线,但当我们咨询变通方案时,技术支持响应很及时。"
Tomasz B.
Independent Software Vendor
Development teams that need server-side CSV conversion via ActiveX or command line
Power web-based CSV-to-PDF and CSV-to-Excel tools
Web developers integrate Total CSV ConverterX via ActiveX into ASP or PHP applications to offer CSV conversion as an online service. Users upload CSV files through a browser, the server converts them to PDF, XLS, or HTML on the fly, and delivers the result — all without any desktop software or pop-up windows.
Convert CSV data dumps from ERP systems automatically
Enterprise IT teams deploy Total CSV ConverterX on servers to process CSV exports from SAP, Oracle, and other ERP systems. Scheduled tasks convert nightly data dumps to Excel for finance teams, XML for partner integrations, or DBF for legacy systems — preserving folder structure and handling custom delimiters automatically.
Transform CSV feeds into JSON, XML, or database formats
Data engineering teams use the command line interface to build conversion steps into ETL pipelines. CSV files from APIs, IoT sensors, or log systems are converted to JSON for web services, XML for data warehouses, or SQL-ready formats for direct database import — with full control over data types, separators, and row filtering.
Serve converted reports to multiple users on a network
Total CSV ConverterX runs as a client-server application on a local network, allowing multiple users to request CSV conversions simultaneously. Finance, sales, and operations teams each get their data exports converted to the format they need — PDF for management, XLS for analysts, HTML for dashboards — from a single server installation.
Convert transactional CSV logs to archival PDF and DOC
Regulated industries convert transactional CSV logs and audit trails into PDF or DOC for long-term archival storage. Total CSV ConverterX processes large volumes of files silently on the server with no GUI interruptions, making it ideal for unattended overnight jobs and compliance-driven retention workflows.
Total CSV ConverterX 附带 CSVConverterX.exe,这是一个可以从脚本、计划任务、ETL 管道或任何需要将 CSV 和 TSV 数据转换为不同格式的后端服务驱动的控制台二进制程序。标志集与 GUI 版的 CSVConverter.exe 一致;完整参考请参阅命令行文档。下面的配方涵盖了我们最常从 SDK 客户那里听到的场景。
最简单的调用方式 —— 一个源文件、一个输出、一个目标格式。当干净、分页的 PDF 需要落入某人的收件箱时,对临时报告很有用。
CSVConverterX.exe "C:\reports\sales.csv" "C:\out\sales.pdf" -cPDF
处理文件夹中的每个 CSV,并将相应的 XLS 文件写入同级输出目录。通配符 *.csv 选取源路径顶层的所有内容。
CSVConverterX.exe "C:\reports\*.csv" "C:\out\" -cXLS
将 -cXLS 替换为 -cODS 以面向 OpenOffice Calc,或 -cDBF 当为旧数据库提供数据时。
报告导出通常以日期树形式到达:每个区域一个文件夹,每天一个子文件夹。-Recurse 遍历子目录;-kfs 在输出端重新创建相同的树,而不是将所有内容展平到一个桶中。
CSVConverterX.exe "C:\reports\2026\*.csv" "C:\out\2026\" -cPDF -Recurse -kfs
德语、法语和其他区域设置中的 Excel 导出使用分号而不是逗号,因为逗号是小数点分隔符。-comma 设置输入文件的字段分隔符,与该标志的名称无关。
CSVConverterX.exe "C:\reports\de\*.csv" "C:\out\" -cXLS -comma ";"
TSV 文件、SQL 客户端的导出和日志转储经常使用制表符或管道作为字段分隔符。将文字字符传递给 -comma —— 对于制表符,使用 \t。
CSVConverterX.exe "C:\data\*.tsv" "C:\out\" -cXLS -comma "\t"
CSVConverterX.exe "C:\data\*.csv" "C:\out\" -cXLS -comma "|"
许多真实世界的 CSV 导出在实际表格开始之前以几行元数据(报告标题、日期、分隔符提示)开头。-skip 删除那些前言行;-fh 告诉转换器下一行是标题,因此列名会传播到输出中。
CSVConverterX.exe "C:\reports\*.csv" "C:\out\" -cXLS -skip 3 -fh
某些管道用单引号或反引号包装文本字段,而不是标准的双引号。-quote 设置解析器在输入时视为字符串分隔符的字符。
CSVConverterX.exe "C:\exports\*.csv" "C:\out\" -cXML -quote "'"
XML 仍然是许多 B2B 集成和 ERP 导入的通用语言。当 -fh 设置时,转换器为每个 CSV 行写入一个 XML 元素,使用标题名称作为标签。
CSVConverterX.exe "C:\reports\orders.csv" "C:\out\orders.xml" -cXML -fh
当工作进程写入队列文件而转换器消耗它时,您不希望在命令行上编码每个路径。-list 从文本文件中读取文件掩码(每行一个)—— 非常适合由其他脚本组装的夜间批次。
CSVConverterX.exe -list "C:\queues\nightly.txt" "C:\out\" -cPDF
一旦 CSVConverterX.exe 作为服务或计划作业运行,了解发生了什么的唯一方法就是日志。-verbosity detail 每个文件写一行而不是仅写错误;-log 将所有消息重定向到文件,因此控制台保持安静。
CSVConverterX.exe "C:\reports\*.csv" "C:\out\" -cXLS -log "C:\logs\csvconv.log" -verbosity detail
如果应该在成功转换后删除源文件,请添加 -do —— 对于队列在排空时清空的假脱机文件夹工作流很方便。