Você tem pastas de pastas de trabalho Excel que precisam alimentar um serviço web SOAP, um parceiro EDI, uma submissão regulatória ou uma integração ERP — e o sistema receptor fala XML, não XLSX. Abrir cada arquivo no Excel e salvá-lo como XML manualmente para de funcionar após a segunda pasta de trabalho, e a exportação XML embutida do Excel ignora os requisitos de schema que o sistema downstream realmente verifica. O Total Excel Converter X converte arquivos XLS e XLSX para XML bem formado pela linha de comando, em lote, sem interface gráfica e sem necessidade de instalação do Microsoft Excel. Instale-o em um servidor Windows, chame-o a partir de um script ou via ActiveX e deixe-o rodar sem supervisão.
*.xlsx) e o conversor processa todas as pastas de trabalho correspondentes em uma única execução
(30 dias, sem e-mail)
(licença de servidor, perpétua)
Windows 7/8/10/11 • Server 2008/2012/2016/2019/2022
Excel é uma grade. Linhas e colunas contêm valores, e o significado de cada coluna vive em uma linha de cabeçalho que humanos leem. O formato é ótimo para analistas, péssimo para integração de sistemas. Serviços SOAP, gateways EDI, portais regulatórios, interfaces bancárias e mensagens de saúde HL7 não analisam XLSX. Eles esperam XML com nomes de elemento explícitos, aninhamento definido e regras de escape previsíveis.
XML é hierárquico e autodescritivo. Cada valor carrega um nome de elemento, o documento valida contra um schema, e qualquer plataforma — Linux, Java, .NET, mainframes IBM — pode analisá-lo sem bibliotecas proprietárias. Quando dados Excel precisam entrar nesse mundo, eles têm que se tornar XML primeiro. O Total Excel Converter X grava XML válido onde cada linha Excel se transforma em um nó de registro, a linha de cabeçalho fornece nomes de campo e caracteres especiais são escapados para que a saída passe por qualquer parser XML de forma limpa.
| Excel (XLS/XLSX) | XML | |
|---|---|---|
| Forma | Grade bidimensional | Árvore hierárquica |
| Nomes de campo | Implícitos (linha de cabeçalho) | Explícitos em cada registro |
| Validação | Nenhuma no nível de arquivo | Schema (XSD, DTD) |
| Consumidores | Humanos, ferramentas que entendem Excel | SOAP, EDI, ERP, HL7, reguladores |
| Multiplataforma | Melhor no Windows + Office | Universal — toda linguagem e SO |
Baixe o instalador pelo link acima e execute-o no seu servidor ou estação de trabalho Windows. A instalação leva menos de um minuto. Nenhuma instalação do Microsoft Excel é necessária — o conversor lê XLS e XLSX diretamente com seu próprio parser, incluindo fórmulas, estilos e pastas de trabalho de várias planilhas.
Abra o cmd.exe ou PowerShell. O executável do conversor é XLSConverter.exe, localizado na pasta de instalação (normalmente C:\Program Files\CoolUtils\TotalExcelConverterX\). Adicione-o ao PATH do sistema ou use o caminho completo nos seus comandos.
O comando mais simples converte todos os arquivos Excel de uma pasta para XML:
XLSConverter.exe C:\Sheets\*.xlsx C:\Output\ -c XML
Isso processa cada arquivo .xlsx em C:\Sheets\ e salva os arquivos XML resultantes em C:\Output\. Cada pasta de trabalho produz um arquivo XML com o mesmo nome base. Cada linha na origem se torna um elemento <Row>, e cada célula se torna um elemento filho nomeado a partir do cabeçalho de coluna correspondente.
Controle a saída XML com flags adicionais:
XLSConverter.exe C:\Sheets\*.xlsx C:\Output\ -c XML -Encoding UTF-8 -FirstRowAsHeader true -log C:\Logs\xls2xml.log
-Encoding UTF-8 — define a codificação XML (UTF-8, UTF-16, Windows-1252, ISO-8859-1)-FirstRowAsHeader true — usa a linha 1 como nomes de elemento em vez de genérico Column1, Column2-Sheet "Invoices" — converte apenas a planilha nomeada em vez de cada planilha-log C:\Logs\xls2xml.log — grava um log de conversão para verificaçãoSalve seu comando em um arquivo .bat e agende-o com o Agendador de Tarefas do Windows:
@echo off "C:\Program Files\CoolUtils\TotalExcelConverterX\XLSConverter.exe" C:\Incoming\*.xlsx C:\Archive\XML\ -c XML -Encoding UTF-8 -FirstRowAsHeader true -log C:\Logs\xls2xml.log
Isso executa a conversão todas as noites (ou em qualquer intervalo que você definir) e grava um arquivo de log para que você possa verificar os resultados. Coloque novas pastas de trabalho em C:\Incoming\ durante o dia, e o pipeline de integração as recolhe automaticamente.
O Total Excel Converter X inclui uma interface ActiveX completa. Você pode chamar o conversor a partir de qualquer ambiente compatível com COM — .NET, VBScript, PHP, Python, Ruby ou ASP. Isso permite incorporar a conversão de Excel para XML em sua própria aplicação web, broker de integração ou fluxo de trabalho de documentos sem executar um processo de linha de comando separado.
Exemplo (C#/.NET):
XLSConverterX Cnv = new XLSConverterX();
Cnv.Convert("C:\\Sheets\\invoices.xlsx", "C:\\Output\\invoices.xml", "-c XML -Encoding UTF-8 -FirstRowAsHeader true -log c:\\Logs\\xls.log");
Exemplo (PHP):
$c = new COM("XLSConverter.XLSConverterX");
$c->convert("C:\\Sheets\\invoices.xlsx", "C:\\Output\\invoices.xml", "-c XML -Encoding UTF-8 -FirstRowAsHeader true -log c:\\Logs\\xls.log");
A mesma chamada funciona a partir de ASP.NET, VBScript, Python, Ruby, Perl e JavaScript (Windows Script Host). Sua camada de integração pode aceitar arquivos Excel enviados, convertê-los para XML em memória e encaminhar a carga útil XML diretamente para um endpoint SOAP ou uma fila ERP.
| Recurso | Conversores online | Total Excel Converter X |
|---|---|---|
| Processamento em lote | Um arquivo por vez | Arquivos ilimitados por lote |
| Privacidade dos dados | Pastas de trabalho enviadas para servidor de terceiros | Arquivos nunca saem da sua máquina |
| Controle de codificação | Apenas UTF-8, frequentemente quebrado | UTF-8, UTF-16, Windows-1252, ISO-8859-1 |
| Escape de caracteres especiais | Inconsistente, frequentemente XML inválido | Escape completo para &, <, >, ", caracteres de controle |
| Pastas de trabalho de várias planilhas | Apenas a primeira | Todas as planilhas ou planilha nomeada |
| Automação | Apenas manual | Linha de comando, .bat, Agendador de Tarefas, ActiveX |
| Implantação em servidor | Não possível | Projetado para servidores, sem interface gráfica |
| Requer Excel instalado | N/A | Não |
| Requer internet | Sim | Não |
O conversor lê XLS e XLSX diretamente com seu próprio parser. Você não precisa ter Microsoft Office, LibreOffice ou qualquer aplicação de planilhas instalada no servidor. Isso evita custos de licenciamento e a conhecida instabilidade da automação do Excel em cenários autônomos.
O Total Excel Converter X foi projetado para uso autônomo. Sem janelas de interface, sem caixas de diálogo, sem solicitações de confirmação. Ele executa silenciosamente pela linha de comando ou como parte de um serviço — exatamente o que um servidor de integração de produção precisa.
A saída é XML bem formado. E comerciais se tornam &, colchetes angulares se tornam < e >, aspas dentro de atributos são escapadas e caracteres de controle perdidos são removidos. O XML passa por qualquer parser compatível com padrões sem engasgar com um nome de cliente que por acaso continha um e comercial.
A mesma ferramenta de linha de comando converte Excel para PDF, DOC, HTML, CSV, JSON, ODS, TXT e mais. Uma única instalação cobre todas as suas necessidades de conversão de planilhas. Altere -c XML para -c JSON e você obtém saída JSON com os mesmos recursos de lote e automação.
(30 dias, sem e-mail ou cartão de crédito)
(licença de servidor, perpétua)
Windows 7/8/10/11 • Server 2008/2012/2016/2019/2022
"Nosso parceiro de transporte aceita pedidos de compra apenas como XML sobre SOAP, mas a equipe de operações os constrói no Excel. O Total Excel Converter X roda como um .bat agendado no servidor de integração e transforma a pasta de trabalho diária de pedidos em XML em menos de três segundos. O escape lida com os caracteres especiais em nomes de clientes que quebravam nosso parser interno anterior. Substituto direto para um script VBA caseiro que ninguém queria manter."
Andreas Vogt Integration Engineer, Logistik AG
"Trocamos documentos EDI com cerca de quarenta parceiros de varejo, e um terço deles quer envelopes XML em vez de X12 ou EDIFACT. O conversor fica entre nosso balcão de pedidos baseado em planilhas e o gateway EDI. O mapeamento de linha de cabeçalho significa que o schema XML de cada parceiro se alinha com os nomes de coluna que já usamos. A codificação é definida por parceiro pela linha de comando. Sem surpresas em produção."
Priya Subramanian EDI Specialist, Wholesale Distribution
"Apresentamos retornos regulatórios ao banco central em XML em uma cadência semanal. Os dados de origem são reconciliados em Excel pela equipe financeira e então têm que se tornar uma carga útil XML estritamente codificada. A saída UTF-8 do conversor e o escape limpo de e comercial passam pelo validador do regulador na primeira tentativa. Ainda pós-processamos a saída por XSLT para encaixar no schema de destino exato, mas o passo de conversão em si é confiável e rápido."
Marc Lefevre Regulatory Reporting Lead, Banque Mutuelle
XLSConverter.exe C:\Sheets\*.xlsx C:\Output\ -c XML. Isso converte cada pasta de trabalho Excel da pasta de origem para XML. Adicione flags como -Encoding UTF-8, -FirstRowAsHeader true ou -log para controlar a estrutura e a codificação de saída.-FirstRowAsHeader true e o conversor usa cada cabeçalho de coluna como nome de elemento para aquele campo, então uma coluna CustomerName produz elementos <CustomerName>. Sem essa flag, o conversor recorre a tags genéricas Column1, Column2. Nós de linha tem padrão <Row>; isso dá a você uma estrutura previsível e regular que mapeia limpo para a maioria dos schemas consumidores.-Encoding. UTF-8 é o padrão seguro para SOAP, EDI e a maioria das integrações modernas. Use UTF-16 quando um sistema downstream o exigir especificamente, ou uma code page Windows ao alimentar um parceiro legado que espera XML de byte único.&, colchetes angulares se tornam < e >, aspas duplas dentro de valores de atributo se tornam ", e caracteres de controle perdidos que quebrariam um parser XML 1.0 são removidos. A saída valida contra qualquer parser compatível com padrões sem limpeza manual.-Sheet "Invoices" para converter apenas uma planilha nomeada, ou -Sheet 1 para escolher pelo índice baseado em zero. Planilhas ocultas e planilhas de gráfico são ignoradas.XLSConverter.XLSConverterX). Você pode chamá-lo a partir de .NET, PHP, Python, VBScript, ASP, Ruby, Perl e qualquer outro ambiente compatível com COM para converter uploads Excel em XML em tempo real e encaminhar o resultado para um endpoint SOAP ou fila de mensagens.
string src="C:\\teste\\Fonte.xlsx";
string dest="C:\\teste\\Dest.PDF";
ExcelConverterX Cnv = new ExcelConverterX();
Cnv.Convert(origem, destino, "-c PDF -log c:\\teste\\Excel.log");
MessageBox.Show("Conversão concluída!");
classe estática pública Function1
{
[FunçãoNome("Função1")]
tarefa pública estática assíncrona Correr(
[HttpTrigger(AuthorizationLevel.Anonymous, "obter", "postar", Rota = nulo)] HttpRequest req,
Registro do ILogger)
{
StringBuilder sbLogs = novo StringBuilder();
sbLogs.AppendLine("iniciado...");
tentar
{
ProcessStartInfo startInfo = novo ProcessStartInfo();
startInfo.CreateNoWindow = verdadeiro;
startInfo.UseShellExecute = falso;
var assemblyDirectoryPath = Caminho.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 = Caminho.GetTempFileName() + ".pdf";
startInfo.FileName = executablePath;
se (Arquivo.Existe(outPath))
{
Arquivo.Excluir(outPath);
}
se (Arquivo.Existe(executablePath) && Arquivo.Existe(msgPath))
{
sbLogs.AppendLine("arquivos existem...");
}
outro
sbLogs.AppendLine("Arquivos EXE e MSG NÃO existem...");
startInfo.WindowStyle = ProcessWindowStyle.Hidden;
startInfo.Arguments = $"{msgPath} {outPath}";
usando (Processo exeProcess = Process.Start(startInfo))
{
sbLogs.AppendLine($"espera...{DateTime.Now.ToString()}");
exeProcess.WaitForExit();
sbLogs.AppendLine($"completo...{DateTime.Now.ToString()}");
}
int sleepCounter = 10;
enquanto(!Arquivo.Existe(outPath) && sleepCounter > 0)
{
Sistema.Threading.Thread.Sleep(1000);
sbLogs.AppendLine("dormir...");
Contador de sono--;
}
se (Arquivo.Existe(outPath))
sbLogs.AppendLine("Conversão concluída com sucesso.");
}
pegar (Exceção ex)
{
sbLogs.AppendLine(ex.ToString());
}
retornar novo OkObjectResult(sbLogs);
}
}
C escuro
Defina C=CreateObject("ExcelConverter.ExcelConverterX")
C.Converter "c:\teste\fonte.xlsx", "c:\teste\dest.pdf", "-cPDF -log c:\teste\Excel.log"
Resposta.Escreva C.ErrorMessage
conjunto C = nada
C escuro
Defina C=CreateObject("ExcelConverter.ExcelConverterX")
Resposta.Limpar
Response.AddHeader "Tipo de conteúdo", "fluxo binário/octeto"
Rresponse.AddHeader "Content-Disposition", "anexo; nome do arquivo=teste.pdf"
Response.BinaryWrite c.ConvertToStream("C:\www\ASP\Source.xlsx", "C:\www\ASP", "-cpdf -log c:\html.log")
conjunto C = nada
$src="C:\\teste\\teste.XLS";
$dest="C:\\teste\\teste.CSV";
se (file_existe($dest)) unlink($dest);
$c= novo COM("ExcelConverter.ExcelConverterX");
$c->convert($src,$dest, "-c csv -log c:\\teste\\xls.log");
se (file_existe($dest)) eco "OK"; senão eco "falha:".$c->ErrorMessage;
requer 'win32ole'
c = WIN32OLE.new('Conversor Excel.Conversor ExcelX')
src="C:\\teste\\teste.xlsx";
dest="C:\\teste\\teste.pdf";
c.convert(origem,destino, "-c PDF -log c:\\teste\\Excel.log");
se não File.exist?(dest)
coloca c.ErrorMessage
fim
importar win32com.client
importar os.path
c = win32com.client.Dispatch("Conversor Excel.Conversor ExcelX")
src="C:\\teste\\teste.xlsx";
dest="C:\\teste\\teste.pdf";
c.convert(origem, dest, "-c PDF -log c:\\teste\\Excel.log");
se não os.path.exists(file_path):
imprimir(c.ErrorMessage)
usa Diálogos, Vcl.OleAuto;
var
c: OleVariant;
começar
c:=CreateOleObject('ExcelConverter.ExcelConverterX');
C.Convert('c:\teste\fonte.xlsx', 'c:\teste\dest.pdf', '-cPDF -log c:\teste\Excel.log');
SE c.ErrorMessage<> Então
MostrarMensagem(c.ErrorMessage);
fim;
var c = novo ActiveXObject("ExcelConverter.ExcelConverterX");
c.Convert("C:\\teste\\origem.xlsx", "C:\\teste\\destino.pdf", "-c PDF");
se (c.ErrorMessage!="")
alerta(c.ErrorMessage)
usar Win32::OLE; meu $src="C:\\teste\\teste.XLS"; meu $dest="C:\\teste\\teste.CSV"; meu $c = CreateObject Win32::OLE 'ExcelConverter.ExcelConverterX'; $c->convert($src,$dest, "-c csv -log c:\\teste\\xls.log"); imprimir $c->ErrorMessage se -e $dest;
Baixe a versão de teste gratuita e converta seus arquivos em minutos.
Não é necessário cartão de crédito ou email.