Você tem pastas de arquivos XLS e XLSX que precisam alimentar um banco de dados, um pipeline de análise ou um dashboard de relatórios — e o sistema de destino fala CSV, não Excel. Abrir cada pasta de trabalho no Excel e clicar em Salvar Como → CSV não escala além de dois ou três arquivos, e desmorona completamente em um servidor sem instalação do Excel. O Total Excel Converter X converte arquivos Excel para CSV pela linha de comando, em lote, sem interface gráfica e sem o Microsoft Office na máquina. 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 todos os arquivos correspondentes em uma única execução-CSVDelimiter, correspondendo ao que seu importador espera-EachSheetSeparate
(30 dias, sem e-mail)
(licença de servidor, perpétua)
Windows 7/8/10/11 • Server 2008/2012/2016/2019/2022
Arquivos Excel (XLS, XLSX) são formatos contêineres. Uma pasta de trabalho contém múltiplas planilhas, fórmulas, formatação, gráficos, tabelas dinâmicas, regras condicionais e objetos incorporados. XLS é um formato binário proprietário dos anos 1990; XLSX é um arquivo ZIP de partes XML. Ambos exigem um parser que entenda o esquema do Office. A maioria dos bancos de dados e ferramentas de análise não consegue ler nenhum dos dois diretamente.
CSV é texto puro — uma linha por registro, campos separados por um delimitador. Cada motor de banco de dados, cada linguagem de script, cada ferramenta de BI e cada plataforma ETL lê CSV sem tradução. PostgreSQL COPY, MySQL LOAD DATA INFILE, BigQuery bq load, pandas read_csv, R read.csv — todos esperam CSV. Quando dados Excel precisam entrar nesse pipeline, primeiro tem que se tornar CSV.
| Excel (XLS / XLSX) | CSV | |
|---|---|---|
| Formato | Binário proprietário ou ZIP-XML | Texto puro |
| Planilhas por arquivo | Múltiplas | Uma tabela |
| Fórmulas | Armazenadas e recalculadas | Apenas valores avaliados |
| Formatação | Fontes, cores, bordas, gráficos | Nenhuma |
| Importação de banco de dados | Requer ODBC ou biblioteca | Nativa em todos os motores |
| Público | Usuários Office | Bancos de dados, scripts, ferramentas ETL |
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 ou Office é necessária — o conversor analisa XLS e XLSX diretamente usando seu próprio motor.
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 CSV:
XLSConverter.exe C:\Reports\*.xlsx C:\Output\ -c CSV
Isso processa cada arquivo .xlsx em C:\Reports\ e salva os arquivos CSV resultantes em C:\Output\. Cada arquivo Excel produz um CSV com o mesmo nome base. Use *.xls para converter arquivos binários legados, ou *.xls* para capturar ambas as extensões em uma passagem.
Os padrões CSV frequentemente precisam de ajuste para corresponder ao sistema de destino. Importadores reais são exigentes sobre separadores e code pages:
XLSConverter.exe C:\Reports\*.xlsx C:\Output\ -c CSV -CSVDelimiter ";" -CSVQuotation "\"" -Encoding UTF-8 -log C:\Logs\xls2csv.log
-CSVDelimiter "," — vírgula (padrão). Use ";" para localidades europeias, "\t" para separado por tabulação, ou "|" para pipe-CSVQuotation "\"" — envolve campos contendo o delimitador, aspas ou quebras de linha em aspas duplas-Encoding UTF-8 — força saída UTF-8. Use UTF-16, Windows-1251, Windows-1252 ou ISO-8859-1 conforme o sistema de destino exigir-EachSheetSeparate — divide uma pasta de trabalho de várias planilhas em um CSV por planilha, nomeado {file}_{sheet}.csv-log C:\Logs\xls2csv.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\CSV\ -c CSV -CSVDelimiter ";" -Encoding UTF-8 -EachSheetSeparate -log C:\Logs\xls2csv.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 novos arquivos XLSX em C:\Incoming\ e a próxima execução agendada os recolhe.
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 CSV em seu próprio job de ETL, formulário de upload web ou serviço de relatórios sem executar um processo de linha de comando separado.
Exemplo (C#/.NET):
XLSConverterX Cnv = new XLSConverterX();
Cnv.Convert("C:\\Reports\\sales.xlsx", "C:\\Output\\sales.csv", "-c CSV -CSVDelimiter \";\" -Encoding UTF-8 -log c:\\Logs\\xls.log");
Exemplo (PHP):
$c = new COM("XLSConverter.XLSConverterX");
$c->convert("C:\\Reports\\sales.xlsx", "C:\\Output\\sales.csv", "-c CSV -CSVDelimiter \";\" -Encoding UTF-8 -log c:\\Logs\\xls.log");
A mesma chamada funciona a partir de ASP.NET, VBScript, Python, Ruby, Perl e JavaScript (Windows Script Host). Sua aplicação pode aceitar arquivos XLSX enviados e retornar CSV pronto para ingestão direta em um banco de dados ou ferramenta de análise.
| Recurso | Conversores online | Total Excel Converter X |
|---|---|---|
| Processamento em lote | Um arquivo por vez | Arquivos ilimitados por lote |
| Privacidade dos arquivos | Arquivos enviados para servidor de terceiros | Arquivos nunca saem da sua máquina |
| Limite de tamanho de arquivo | Tipicamente 5–25 MB | Nenhum — pastas de trabalho de gigabytes suportadas |
| Controle de delimitador / codificação | Raro ou oculto | Controle completo via flags |
| Tratamento de várias planilhas | Geralmente apenas a primeira | -EachSheetSeparate ou mesclado |
| 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 |
COPY sales FROM '/data/sales.csv' CSV HEADER no Postgres ou LOAD DATA INFILE no MySQL. Todo o pipeline roda em segundos para arquivos que levariam minutos por meio de um importador GUI.bq load ou COPY INTO. Um job .bat noturno converte os relatórios Excel do dia para CSV e os envia para um bucket de stage para o warehouse recolher.read_csv e R read.csv. Quando os dados de origem chegam como XLSX das finanças ou operações, um conversor do lado do servidor produz CSV limpo sem ninguém tocar no Excel.-CSVDelimiter e -Encoding definidos para corresponder à especificação da agência.O conversor analisa arquivos XLS e XLSX diretamente. 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 produção precisa.
Importadores CSV reais se preocupam com detalhes. Um delimitador ponto e vírgula para sistemas europeus, UTF-8 para texto internacional, envolvimento em aspas duplas para campos com vírgulas embutidas. Uma pasta de trabalho Excel com doze planilhas mensais é um único arquivo, mas CSV contém uma tabela por arquivo — -EachSheetSeparate divide a pasta de trabalho em doze arquivos CSV nomeados, cada um pronto para ingestão separada. Cada detalhe é exposto como flag de linha de comando, então a saída corresponde ao que seu pipeline downstream espera na primeira tentativa.
A mesma ferramenta de linha de comando converte Excel para PDF, DOC, HTML, XML, JSON, ODS, TIFF, JPEG e mais. Uma única instalação cobre todos os destinos de conversão do Excel. Altere -c CSV para -c PDF e você obtém relatórios PDF 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 pipeline ingere mais de 200 arquivos XLSX por dia de gerentes de lojas regionais e os carrega no Postgres via COPY. Substituímos um script Python-mais-openpyxl frágil pelo XLSConverter.exe em um job .bat. As flags ponto e vírgula como delimitador e UTF-8 resolveram nossos problemas de caracteres alemães e poloneses na primeira execução. A vazão foi de quarenta minutos para menos de cinco no mesmo lote noturno."
Priya Raghavan Data Engineer, Retail Analytics
"Alimentamos pastas de trabalho Excel mensais no BigQuery para o dashboard executivo. A flag -EachSheetSeparate foi a peça que faltava — um CSV por planilha mapeia limpo para uma tabela de stage por linha de negócio. Sem mais exportações manuais planilha a planilha do Excel. A interface COM permite que a mesma ferramenta sirva nosso portal interno de upload."
Daniel Kowalski BI Analyst, Insurance Group
"Integrei o XLSConverter via classe ActiveX em um serviço .NET que processa relatórios de corretores. A avaliação de fórmulas funciona corretamente mesmo nas pastas de trabalho maiores com referências entre planilhas. A flag de codificação trata nossas entradas em italiano e francês de forma limpa. A documentação em algumas das flags mais raras poderia ser mais detalhada, mas o suporte respondeu às minhas perguntas em um dia útil."
Sofia Marchetti ETL Developer, FinTech Platform
XLSConverter.exe C:\Reports\*.xlsx C:\Output\ -c CSV. Isso converte todos os arquivos XLSX da pasta de origem para CSV. Adicione flags como -CSVDelimiter ";", -Encoding UTF-8 ou -EachSheetSeparate para controlar a saída.-CSVDelimiter. Passe "," para vírgula (padrão), ";" para ponto e vírgula (comum em localidades europeias), "\t" para tabulação ou "|" para pipe. Envolva o valor em aspas duplas na linha de comando.-Encoding UTF-8 ao comando. Outras code pages suportadas incluem UTF-16, Windows-1251, Windows-1252, ISO-8859-1 e muitas mais. Defina a codificação para corresponder ao que seu banco de dados ou importador espera para que caracteres não-ASCII sobrevivam intactos.-EachSheetSeparate e o conversor produz um CSV por planilha, nomeado {file}_{sheet}.csv. Use esse modo sempre que carregar cada planilha em uma tabela diferente do banco de dados.
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.