Ir para o conteúdo do rodapé
USANDO IRONXL FOR PYTHON

Como importar um arquivo Excel para uma tabela de banco de dados usando Python

No mundo movido a dados de hoje, o manuseio e processamento eficientes de dados são tarefas essenciais para qualquer organização ou indivíduo. Python, com seu rico ecossistema de bibliotecas, oferece ferramentas poderosas para manipulação e gestão de dados, como a biblioteca pandas. Um cenário comum é a necessidade de extrair ou importar dados de planilhas Excel e armazenar ou inserir dados em um banco de dados para análise posterior ou integração com outros sistemas. Neste tutorial, exploraremos como criar um script Python que automatiza este processo, permitindo que você leia dados de arquivos de planilha Excel e os insira sem interrupções em um banco de dados. Ao final deste tutorial, você estará pronto para lidar com tarefas de migração de dados de forma eficiente. Vamos começar!

Como Importar um Arquivo Excel para uma Tabela de Banco de Dados Usando Python

  1. Comece instalando a biblioteca IronXL.
  2. Carregue seu arquivo Excel na memória usando IronXL.
  3. Carregue a planilha específica com a qual deseja trabalhar.
  4. Selecione o intervalo exato de dados que pretende importar.
  5. Estabeleça uma conexão com qualquer banco de dados, como um banco de dados de conexão SQLite ou MySQL usando Python.
  6. Crie uma nova tabela no seu banco de dados SQLite para acomodar os dados importados.
  7. Insira as linhas selecionadas do arquivo Excel na nova tabela SQLite criada.
  8. Recupere e selecione dados da tabela SQLite criada para análise ou processamento adicional.

Neste tutorial, usaremos IronXL, uma biblioteca Python renomada por sua eficiência no manuseio de arquivos Excel. Ao integrar IronXL em nosso script, garantimos a extração fácil de dados de planilhas Excel, permitindo a inserção tranquila em bancos de dados para análise e processamento adicionais.

O que é IronXL?

IronXL é uma biblioteca Python desenvolvida por Iron Software, oferecendo funcionalidades robustas para leitura, geração e edição de arquivos Excel diretamente dentro de aplicações Python. Notavelmente, IronXL se destaca por sua independência da instalação do Microsoft Excel, simplificando a implementação em diferentes ambientes. Com IronXL, os desenvolvedores se beneficiam de:

Suporte Multiplataforma: Desfrute de operação contínua em plataformas Windows, macOS, Linux, Docker, Azure e AWS, garantindo adaptabilidade a diversos cenários de desenvolvimento.

Importação e Exportação de Dados: Gerencie facilmente a importação de dados de arquivos XLS, XLSX, CSV e TSV, com a flexibilidade de exportar planilhas para esses formatos e até mesmo para JSON, para maior interoperabilidade.

Recursos de Criptografia: Garanta a segurança dos dados aproveitando as capacidades de criptografia do IronXL, permitindo a proteção de arquivos XLSX, XLSM e XLTX com senhas.

Fórmulas e Recalculo: Trabalhe facilmente com fórmulas do Excel, com o benefício adicional de recalculo automático toda vez que uma planilha é editada, garantindo precisão e confiabilidade na manipulação de dados.

Estilo das Células: Personalize a aparência de células individuais ajustando estilos de fonte, tamanhos, padrões de fundo, bordas e alinhamento, melhorando a apresentação visual de seus documentos Excel.

Ampla Variedade de Formatos de Documento: Com suporte para diversos formatos, incluindo XLS, XLSX, XLST, XLSM, CSV e TSV, IronXL capacita desenvolvedores a lidar com dados em uma infinidade de cenários com facilidade e eficiência.

Agora, vamos começar instalando o IronXL.

Passo 1: Instalar a Biblioteca IronXL

O primeiro passo é instalar a biblioteca IronXL. Execute o seguinte comando para instalar o IronXL no prompt de comando.

pip install IronXL
pip install IronXL
SHELL

Passo 2: Carregar o Workbook Excel

O próximo passo é carregar o arquivo Excel. Usaremos o seguinte arquivo Excel para este tutorial.

Como Importar um Arquivo Excel em uma Tabela de Banco de Dados Usando python: Figura 1 - Entrada de Arquivo Excel de Amostra

O código a seguir carregará o arquivo Excel existente na memória.

from ironxl import *  # Supported for XLSX, XLS, XLSM, XLTX, CSV, and TSV

# Assign a license key (retrieved from IronXL website)
License.LicenseKey = "IRONSUITE.ABC.XYZ.COM.15796-DEPLOYMENT.TRIAL-5X63V4.TRIAL.EXPIRES.27.MAY.2024"

# Load the Excel workbook into memory
workbook = WorkBook.Load("sample_excel.xlsx")
from ironxl import *  # Supported for XLSX, XLS, XLSM, XLTX, CSV, and TSV

# Assign a license key (retrieved from IronXL website)
License.LicenseKey = "IRONSUITE.ABC.XYZ.COM.15796-DEPLOYMENT.TRIAL-5X63V4.TRIAL.EXPIRES.27.MAY.2024"

# Load the Excel workbook into memory
workbook = WorkBook.Load("sample_excel.xlsx")
PYTHON

O snippet de código Python acima demonstra como carregar um workbook Excel chamado "sample_excel.xlsx" usando a biblioteca IronXL. Primeiramente, o módulo Python necessário é importado do IronXL. Em seguida, uma chave de licença é atribuída para validar o uso da biblioteca. Você pode obter sua chave de licença gratuita no Site do IronXL. Por fim, o método Load é empregado para abrir e carregar na memória a pasta de trabalho Excel especificada. Isso permite a manipulação subsequente de seus conteúdos programaticamente, como ler dados, modificar valores de células ou aplicar formatação.

Passo 3: Selecionar Planilha

Para selecionar uma planilha em um workbook Excel usando IronXL, você pode especificar o índice ou nome da planilha.

# Select the first worksheet in the loaded Excel workbook
worksheet = workbook.WorkSheets[0]
# Select the first worksheet in the loaded Excel workbook
worksheet = workbook.WorkSheets[0]
PYTHON

Esta linha seleciona a primeira planilha na pasta de trabalho Excel carregada e a atribui à variável worksheet, permitindo que operações subsequentes sejam realizadas nessa planilha específica dentro da pasta de trabalho. Isso carregará dados Excel de uma planilha Excel para uma variável de planilha.

Passo 4: Abrir a conexão do Banco de Dados

Neste tutorial, estamos utilizando um banco de dados SQLite ao invés de um servidor de banco de dados MySQL. Para iniciar as operações do banco de dados, começamos estabelecendo uma conexão com o banco de dados.

import sqlite3

# Connect to SQLite database (or create it if it doesn't exist)
conn = sqlite3.connect('data.db')
import sqlite3

# Connect to SQLite database (or create it if it doesn't exist)
conn = sqlite3.connect('data.db')
PYTHON

A linha acima estabelece uma conexão com um banco de dados SQLite chamado 'data.db'. Se o banco de dados especificado não existir, ele será criado automaticamente. Esta conexão permite interação subsequente com o banco de dados SQLite, como execução de consultas e realização de operações de manipulação de dados.

Passo 5: Criar uma Tabela

O próximo passo é criar uma tabela no banco de dados, onde importaremos dados de um arquivo Excel. Para criar uma tabela no banco de dados SQLite, você pode executar uma instrução SQL usando o objeto de conexão.

# Create a cursor object for database operations
cursor = conn.cursor()

# Define and execute SQL to create a table if it doesn't exist
cursor.execute('''
CREATE TABLE IF NOT EXISTS customer (
    id INTEGER,
    FirstName TEXT,
    LastName TEXT,
    Gender TEXT,
    Country TEXT,
    Age INTEGER
)
''')
# Create a cursor object for database operations
cursor = conn.cursor()

# Define and execute SQL to create a table if it doesn't exist
cursor.execute('''
CREATE TABLE IF NOT EXISTS customer (
    id INTEGER,
    FirstName TEXT,
    LastName TEXT,
    Gender TEXT,
    Country TEXT,
    Age INTEGER
)
''')
PYTHON

O snippet de código acima inicializa um objeto cursor para executar comandos SQL dentro da conexão do banco de dados SQLite. Ele cria uma tabela chamada 'customer' com colunas 'id', 'FirstName', 'LastName', 'Gender', 'Country', e 'Age'. A tabela é criada se ainda não existir, aderindo aos tipos de dados de coluna especificados.

Passo 6: Importar dados para o Banco de Dados usando Python

Agora, vamos inserir dados na nossa tabela recém-criada. Importaremos um arquivo Excel e inseriremos seus dados no banco de dados SQLite.

# Iteratively insert data from Excel worksheet into SQLite database
for i in range(2, 11):
    # Extracting values from columns A to F in Excel worksheet
    values_tuple = (
        worksheet[f"A{i}"].StringValue,
        worksheet[f"B{i}"].StringValue,
        worksheet[f"C{i}"].StringValue,
        worksheet[f"D{i}"].StringValue,
        worksheet[f"E{i}"].StringValue,
        worksheet[f"F{i}"].StringValue
    )
    # Executing SQL INSERT command
    cursor.execute("INSERT INTO customer VALUES (?, ?, ?, ?, ?, ?)", values_tuple)

# Commit data insertion to the database
conn.commit()
# Iteratively insert data from Excel worksheet into SQLite database
for i in range(2, 11):
    # Extracting values from columns A to F in Excel worksheet
    values_tuple = (
        worksheet[f"A{i}"].StringValue,
        worksheet[f"B{i}"].StringValue,
        worksheet[f"C{i}"].StringValue,
        worksheet[f"D{i}"].StringValue,
        worksheet[f"E{i}"].StringValue,
        worksheet[f"F{i}"].StringValue
    )
    # Executing SQL INSERT command
    cursor.execute("INSERT INTO customer VALUES (?, ?, ?, ?, ?, ?)", values_tuple)

# Commit data insertion to the database
conn.commit()
PYTHON

O código acima itera sobre as linhas de 2 a 10 na planilha Excel, extraindo valores das colunas A a F para cada linha. Esses valores são armazenados em uma tupla, representando os dados a serem inseridos na tabela 'customer'. O cursor então executa um comando SQL INSERT, incorporando a tupla de valores na tabela. Este processo se repete para cada linha, importando efetivamente dados do arquivo Excel para o banco de dados SQLite. Finalmente, conn.commit() realiza o commit da transação, garantindo que as alterações sejam salvas e persistidas no banco de dados.

Passo 7: Lendo dados do Banco de Dados

Para verificar se os dados foram inseridos corretamente, você pode ler dados da tabela 'customer' no banco de dados SQLite usando uma consulta SELECT. Por exemplo:

# Execute a SELECT query to retrieve all data from the 'customer' table
cursor.execute("SELECT * FROM customer")

# Fetch all rows from the result set
rows = cursor.fetchall()

# Print each row to verify inserted data
for row in rows:
    print(row)

# Close the database connection to release resources
conn.close()
# Execute a SELECT query to retrieve all data from the 'customer' table
cursor.execute("SELECT * FROM customer")

# Fetch all rows from the result set
rows = cursor.fetchall()

# Print each row to verify inserted data
for row in rows:
    print(row)

# Close the database connection to release resources
conn.close()
PYTHON

O código acima executa uma consulta SELECT na tabela 'customer' no banco de dados SQLite, recuperando todas as linhas. As linhas recuperadas são armazenadas na variável 'rows' usando o método fetchall(). Então, cada linha é impressa iterativamente, exibindo os dados inseridos na tabela 'customer'. Por fim, a conexão com o banco de dados é fechada usando o método close() para liberar recursos.

Como Importar um Arquivo Excel em uma Tabela de Banco de Dados Usando python: Figura 2 - Leitura da Saída do Banco de Dados

O Código Completo é o seguinte:

import sqlite3
from ironxl import *  # Supported for XLSX, XLS, XLSM, XLTX, CSV, and TSV

# Assign a license key (retrieved from IronXL website)
License.LicenseKey = "IRONSUITE.ABC.XYZ.COM.15796-DEPLOYMENT.TRIAL-5X63V4.TRIAL.EXPIRES.27.MAY.2024"

# Load the Excel workbook into memory
workbook = WorkBook.Load("sample_excel.xlsx")

# Select worksheet at index 0
worksheet = workbook.WorkSheets[0]

# Connect to SQLite database (or create it if it doesn't exist)
conn = sqlite3.connect('data.db')

# Create a cursor object for database operations
cursor = conn.cursor()

# Define and execute SQL to create a table if it doesn't exist
cursor.execute('''
CREATE TABLE IF NOT EXISTS customer (
    id INTEGER,
    FirstName TEXT,
    LastName TEXT,
    Gender TEXT,
    Country TEXT,
    Age INTEGER
)
''')

# Clear any existing data from the table
cursor.execute("DELETE FROM customer")

# Iteratively insert data from Excel worksheet into SQLite database
for i in range(2, 11):
    # Extracting values from columns A to F in Excel worksheet
    values_tuple = (
        worksheet[f"A{i}"].StringValue,
        worksheet[f"B{i}"].StringValue,
        worksheet[f"C{i}"].StringValue,
        worksheet[f"D{i}"].StringValue,
        worksheet[f"E{i}"].StringValue,
        worksheet[f"F{i}"].StringValue
    )
    # Executing SQL INSERT command
    cursor.execute("INSERT INTO customer VALUES (?, ?, ?, ?, ?, ?)", values_tuple)

# Commit data insertion to the database
conn.commit()

# Execute a SELECT query to retrieve all data from the 'customer' table
cursor.execute("SELECT * FROM customer")

# Fetch all rows from the result set
rows = cursor.fetchall()

# Print each row to verify inserted data
for row in rows:
    print(row)

# Close the database connection to release resources
conn.close()
import sqlite3
from ironxl import *  # Supported for XLSX, XLS, XLSM, XLTX, CSV, and TSV

# Assign a license key (retrieved from IronXL website)
License.LicenseKey = "IRONSUITE.ABC.XYZ.COM.15796-DEPLOYMENT.TRIAL-5X63V4.TRIAL.EXPIRES.27.MAY.2024"

# Load the Excel workbook into memory
workbook = WorkBook.Load("sample_excel.xlsx")

# Select worksheet at index 0
worksheet = workbook.WorkSheets[0]

# Connect to SQLite database (or create it if it doesn't exist)
conn = sqlite3.connect('data.db')

# Create a cursor object for database operations
cursor = conn.cursor()

# Define and execute SQL to create a table if it doesn't exist
cursor.execute('''
CREATE TABLE IF NOT EXISTS customer (
    id INTEGER,
    FirstName TEXT,
    LastName TEXT,
    Gender TEXT,
    Country TEXT,
    Age INTEGER
)
''')

# Clear any existing data from the table
cursor.execute("DELETE FROM customer")

# Iteratively insert data from Excel worksheet into SQLite database
for i in range(2, 11):
    # Extracting values from columns A to F in Excel worksheet
    values_tuple = (
        worksheet[f"A{i}"].StringValue,
        worksheet[f"B{i}"].StringValue,
        worksheet[f"C{i}"].StringValue,
        worksheet[f"D{i}"].StringValue,
        worksheet[f"E{i}"].StringValue,
        worksheet[f"F{i}"].StringValue
    )
    # Executing SQL INSERT command
    cursor.execute("INSERT INTO customer VALUES (?, ?, ?, ?, ?, ?)", values_tuple)

# Commit data insertion to the database
conn.commit()

# Execute a SELECT query to retrieve all data from the 'customer' table
cursor.execute("SELECT * FROM customer")

# Fetch all rows from the result set
rows = cursor.fetchall()

# Print each row to verify inserted data
for row in rows:
    print(row)

# Close the database connection to release resources
conn.close()
PYTHON

Conclusão

Em conclusão, este tutorial demonstrou uma abordagem automatizada para manipulação de dados, especificamente extraindo e inserindo dados do Excel em um banco de dados. Este processo não só melhora a eficiência da gestão de dados, mas também libera todo o seu potencial para empreendimentos de manipulação de dados. Abrace o poder do Python e do IronXL para otimizar seus fluxos de trabalho de dados e impulsionar seus projetos com confiança.

Perguntas frequentes

Como posso importar dados de um arquivo Excel para um banco de dados usando Python?

Você pode usar a biblioteca IronXL para importar dados de um arquivo Excel para um banco de dados, primeiro carregando o arquivo Excel com `WorkBook.Load()`, depois selecionando a planilha e estabelecendo uma conexão com o banco de dados SQLite para inserir os dados.

Quais são os benefícios de usar o IronXL para manipular arquivos Excel em Python?

O IronXL permite manipular arquivos do Excel sem a necessidade de instalar o Microsoft Excel, oferece suporte a operações multiplataforma, fornece recursos robustos como criptografia e recálculo de fórmulas e gerencia com eficiência os processos de extração e inserção de dados.

Como instalo o IronXL para uso em projetos Python?

Para instalar o IronXL em projetos Python, você pode usar o comando: `pip install IronXL`. Isso adicionará o IronXL ao seu ambiente Python, permitindo que você manipule arquivos Excel de forma eficiente.

É possível processar arquivos do Excel em Python sem o Microsoft Excel instalado?

Sim, com o IronXL, você pode processar arquivos do Excel sem precisar ter o Microsoft Excel instalado. O IronXL oferece todas as funcionalidades necessárias para ler, editar e gravar arquivos do Excel de forma independente.

Qual é o processo para criar uma tabela de banco de dados para armazenar dados do Excel em Python?

Para criar uma tabela de banco de dados em Python, você pode usar o módulo `sqlite3` do SQLite. Após estabelecer uma conexão usando `connect()`, execute uma instrução SQL `CREATE TABLE` através de um objeto cursor.

Como posso verificar se os dados do Excel foram inseridos com sucesso em um banco de dados SQLite?

Você pode verificar a inserção executando uma consulta `SELECT` na tabela e usando o método `fetchall()` para recuperar e imprimir todas as linhas do conjunto de resultados.

Quais etapas devem ser seguidas para migrar dados do Excel para um banco de dados usando Python?

Os passos incluem instalar o IronXL, carregar o arquivo Excel, selecionar a planilha, conectar-se ao banco de dados, criar uma tabela e percorrer as linhas do Excel para inserir dados usando comandos SQL `INSERT`.

O IronXL consegue processar fórmulas do Excel e recalculá-las em Python?

Sim, o IronXL suporta fórmulas do Excel e pode recalculá-las, fornecendo uma solução completa para manipulação de arquivos do Excel em aplicações Python.

O IronXL suporta operações multiplataforma para manipulação de arquivos Excel?

Sim, o IronXL suporta operações multiplataforma, incluindo ambientes como Windows, macOS, Linux, Docker, Azure e AWS, tornando-o uma escolha versátil para diversas configurações de desenvolvimento.

Como o IronXL pode aprimorar os fluxos de trabalho de dados em aplicações Python?

O IronXL aprimora os fluxos de trabalho de dados, oferecendo recursos eficientes de extração, manipulação e inserção de dados, o que otimiza os processos de gerenciamento de dados e melhora o desempenho de aplicativos orientados a dados.

Curtis Chau
Redator Técnico

Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais ...

Leia mais

Iron Support Team

We're online 24 hours, 5 days a week.
Chat
Email
Call Me