As empresas costumam usar o Excel para armazenar as tabelas de dados. Muitas vezes, essas empresas vão encontrar um uso para que os dados que requer a convertê-lo em um formato diferente para outro software para usar. Mas arquivos do Excel não são projetados para ser lido por outros programas. Os dados que contêm precisa ser convertido para um formato comum, como Comma Separated arquivos Valor (CSV). Para as pessoas com um monte de arquivos do Excel para converter, o processo usual é complicado. Assim, a capacidade do Perl para lidar com tarefas de processamento de dados de forma rápida e facilmente vem a calhar neste caso.
Coisas que você precisa
- Perl ou Activestate Perl
- CPAN se tiver Perl
- PPM se tiver ActiveState Perl
Criar o arquivo CSV
Instalar o módulo Perl "Spreadsheet :: ParseExcel" em seu sistema. Este é o módulo Perl padrão para a leitura de dados a partir de arquivos do Excel. O processo de instalação depende do seu tipo de sistema.
Se você tem Activestate Perl (ou seja ,. Perl para Windows):
Abra uma janela do Prompt de Comando. Vou ao "caixa" subpasta da pasta onde o programa Activestate Perl está localizado. Se você não sabe onde ele está, use o recurso de pesquisa do Windows para localizar "Activestate" e fazer uma nota do "caminho de diretório" para a pasta Activestate Perl. Em seguida, ir para a sua janela Command Prompt e tipo "DIR" seguido por esse caminho de diretório e pressione Return. Em seguida, digite "DIR bin" e pressione Return.
Digitar "ppm" em seguida, pressione Return. Algum texto irá aparecer e então você vai ser capaz de digitar comandos novamente. Digitar "instalar Spreadsheet :: ParseExcel" e pressione Return. Alguns mais texto irá aparecer e, em seguida, a instalação será concluída.
Se você tem padrão Perl:
Abra um prompt de comando ou janela de terminal. No Mac OS X, o programa é chamado de Terminal. Digite o seguinte:
perl -MCPAN -e instalar Spreadsheet :: ParseExcel
Pressione Return. Um monte de texto irá aparecer e, em seguida, a instalação estará completa.
Torne o arquivo acessível para o seu script Perl seu Excel. Faça uma cópia do arquivo do Excel com o nome "xls_test.xls" Para este tutorial e movê-lo para a pasta onde o script Perl está localizado.
Carregue o seu arquivo Excel em seu script Perl com este código:
usar Spreadsheet :: ParseExcel;
my $ xlsparser = Spreadsheet :: ParseExcel-gt; new ();
my $ xlsbook = $ parser-gt; analisar ( `xsl_test.xls`);
my $ xls = $ xls-gt; planilha (0);
Agora nós temos um objeto ("$ xls") Que contém os dados a partir da primeira folha de cálculo do nosso arquivo Excel. Se você deseja obter dados de uma folha de cálculo diferente, substitua a zero ("0") Na quarta linha com o número de sua planilha menos um. Por exemplo, o número da primeira folha de cálculo é zero ("0"), Número do terceiro planilha é dois ("2") e assim por diante. Se o arquivo de Excel tem apenas uma planilha, use o código como está.
Descubra o que as colunas e linhas da planilha tem. Utilize este código:
my ($ row_first, $ row_last) = $ xls-gt; row_range ();
my ($ col_first, $ col_last) = $ xls-gt; col_range ();
Criar uma variável para armazenar os dados CSV. Utilize este código:
my $ csv = ``;
Criar os dados CSV. Utilize este código para fazê-lo:
para o meu $ row ($ row_first .. $ row_last) {#Passo através de cada linha
para o meu $ col ($ col_first .. $ col_last) {#Passo através de cada coluna
my $ celular = $ xls-gt; get_cell ($ row, col $) - #get a célula atual
próximo a menos célula $;
$ Csv = $ celular gt; não formatado () - #get dados brutos da célula - sem cores de fronteira ou qualquer coisa assim.
if ($ col == $ col_last) {
$ Csv. = " n"- #make Uma nova linha na extremidade da fileira
} outro {
$ Csv. = ","- "Adicionar uma vírgula entre cada item
}
}
}
Salvar os dados em $ CSV para um arquivo usando funções de arquivo de redação do Perl. Verifique se o seu nome de arquivo termina em ".csv" para maior clareza.
dicas & avisos
- arquivos de Excel são muito mais complicado do que arquivos CSV. Isto irá funcionar para arquivos do Excel com uma linha de cabeçalho ou nenhuma linha de cabeçalho seguida por linhas de dados. Qualquer outra coisa que requer uma programação mais complicada.