Mam arkusz Excel z pełną danych. Chcę te same dane w tabeli bazy danych SQLite. Obecnie muszę ręcznie wprowadzić pole 1 na 1. Czy istnieje sposób na bezpośredni eksport danych do tabeli bazy danych sqlite?eksport danych z programu Excel do bazy danych sqlite
Odpowiedz
Twoja ścieżka przechodzi przez CSV (powinieneś wyeksportować swoje dane do pliku CSV), zobacz więcej tutaj na przykład.
Ta witryna konwertuje pliki Excel do plików sqlite http://converttosqlite.com/
Ta strona konwertuje do sqlite2, który nie jest zgodny z sqlite3! – MOHRE
Istnieje również skrypt Pythona (xl2sqlite.py), który będzie wykonać zadanie.
Spróbuj tego kodu świeże exceltosql:
'''
This code uses the openpyxl package for playing around with excel using Python code
to convert complete excel workbook (all sheets) to an SQLite database
The code assumes that the first row of every sheet is the column name
Every sheet is stored in a separate table
The sheet name is assigned as the table name for every sheet
'''
import sqlite3
import openpyxl
from openpyxl import load_workbook
import re
def slugify(text, lower=1):
if lower == 1:
text = text.strip().lower()
text = re.sub(r'[^\w _-]+', '', text)
text = re.sub(r'[- ]+', '_', text)
return text
#Replace with a database name
con = sqlite3.connect('test.db')
#replace with the complete path to youe excel workbook
wb = load_workbook(filename=r'abc.xlsx')
sheets = wb.get_sheet_names()
for sheet in sheets:
ws = wb[sheet]
columns= []
query = 'CREATE TABLE ' + str(slugify(sheet)) + '(ID INTEGER PRIMARY KEY AUTOINCREMENT'
for row in ws.rows[0]:
query += ', ' + slugify(row.value) + ' TEXT'
columns.append(slugify(row.value))
query += ');'
con.execute(query)
tup = []
for i, rows in enumerate(ws):
tuprow = []
if i == 0:
continue
for row in rows:
tuprow.append(unicode(row.value).strip()) if unicode(row.value).strip() != 'None' else tuprow.append('')
tup.append(tuple(tuprow))
insQuery1 = 'INSERT INTO ' + str(slugify(sheet)) + '('
insQuery2 = ''
for col in columns:
insQuery1 += col + ', '
insQuery2 += '?, '
insQuery1 = insQuery1[:-2] + ') VALUES('
insQuery2 = insQuery2[:-2] + ')'
insQuery = insQuery1 + insQuery2
con.executemany(insQuery, tup)
con.commit()
con.close()
Działa nicelly, ale wymaga zmiany "dla wiersza w ws.rows [0]:" to "dla wiersza w następnej (ws.rows):" w linii 33. Dzięki! – Zalakain
- 1. Importowanie macierzy danych programu Excel do bazy danych MySQL
- 2. eksport danych gridview do programu Excel w asp.net
- 3. Załaduj arkusz danych programu Excel do bazy danych Oracle
- 4. Eksport bazy danych SQLite do pliku XML w systemie Android
- 5. Eksport danych z bazy danych H2 do CSV
- 6. Konwersja danych z bazy danych/Excel/CSV do danych YAML?
- 7. Prosty eksport i import bazy danych SQLite na Androida
- 8. Eksport danych z InfluxDB
- 9. Eksport programu Excel bez interopu
- 10. Eksport bazy danych MySQL z XAMPP
- 11. Eksport do programu Excel w Asp.net MVC
- 12. połączenie bazy danych sqlite golang
- 13. przenoszenie danych z programu Excel do programu SQL Server tabeli
- 14. Jak podłączyć CakePHP do bazy danych SQLite?
- 15. Dodaj plik HTML do bazy danych SQLite
- 16. Android: zamykanie bazy danych SQLite
- 17. Eksport SQLite z nazwami kolumn
- 18. Czy mogę zaszyfrować hasło bazy danych SQLite?
- 19. Schemat bazy danych Android Sqlite
- 20. Testowanie bazy danych SQLite Android
- 21. Maksymalna pojemność bazy danych SQLite
- 22. Zapełnianie Spinner z bazy danych SQLite Android
- 23. Sync bazy danych sqlite z mysql
- 24. Uzyskać minimum z kolumny bazy danych SQLite?
- 25. Synchronizacja bazy danych klienta SQLite z bazą danych serwera MySQL
- 26. JavaScript - eksport danych tabeli HTML do Excela
- 27. Eksport do XML z witryny dynamicznych danych
- 28. Szyfrowanie bazy danych SQLite w C#
- 29. Eksport bazy danych SQL Azure do własnego serwera
- 30. Jak skopiować tabelę sqlite z bazy danych dysku do bazy danych pamięci w pythonie?
użycie SQLite Expert Professional 3 –
Możliwy duplikat [Import CSV do SQLite] (http://stackoverflow.com/questions/14947916/import-csv-to- sqlite) – zero323