Excel dosyalarını PostgreSQL için dönüştürün
Excel dosyanızı bırakın, CREATE TABLE ve INSERT ifadeleri içeren bir PostgreSQL betiği alın. Her sütuna bir tür verilir ve her düzeltme satırı ve sütunuyla listelenir.
4 satır dönüştürüldü, 10 düzeltme, reddedilen yok
| Satır | ||||||
|---|---|---|---|---|---|---|
| 5 | 00127 | Peña Muñoz | 01234 | 03/02/2024 | sí | 1.234,50 |
| 6 | 00128 | José Ángel | 09870 | 15/02/2024 | no | N/A |
| 7 | 00129 | Zoë Ortíz | 44100 | 29/02/2024 | sí | -12,00 |
| 8 | 00130 | Ñuño Castañeda | 06700 | 11/03/2024 | no | 980,75 |
-- Written by IntoSQL for PostgreSQL.
SET client_encoding = 'UTF8';
BEGIN;
CREATE TABLE clientes_2024 (
no_cliente text NOT NULL,
nombre text NOT NULL,
c_p text NOT NULL,
alta date NOT NULL,
activo boolean NOT NULL,
saldo numeric(6,2)
);
COMMENT ON COLUMN clientes_2024.no_cliente IS 'Nº Cliente';
COMMENT ON COLUMN clientes_2024.c_p IS 'C.P.';
INSERT INTO clientes_2024 (no_cliente, nombre, c_p, alta, activo, saldo) VALUES
('00127', 'Peña Muñoz', '01234', '2024-02-03', TRUE, 1234.50),
('00128', 'José Ángel', '09870', '2024-02-15', FALSE, NULL),
('00129', 'Zoë Ortíz', '44100', '2024-02-29', TRUE, -12.00),
('00130', 'Ñuño Castañeda', '06700', '2024-03-11', FALSE, 980.75);
COMMIT;
Düzeltmeler
- Başlık 4. satırda; üstündeki satırlar dışarıda bırakıldı.
- 9. satır ("TOTAL") bir toplam; bu yüzden dışarıda bırakıldı.
- "Nº Cliente" sütununun adı artık no_cliente; böylece PostgreSQL onu tırnaksız okur.
- "C.P." sütununun adı artık c_p; böylece PostgreSQL onu tırnaksız okur.
- "Nº Cliente" içindeki baştaki sıfırlar korundu: 00127, 00127 olarak kalır ve metin olarak saklanır.
- "C.P." içindeki baştaki sıfırlar korundu: 01234, 01234 olarak kalır ve metin olarak saklanır.
- 15/02/2024 değeri, "Alta" içindeki tarihlerde günün önce geldiğini kanıtlıyor; bu yüzden 03/02/2024, 2024‑02‑03 olarak okunur.
- "Activo" evet ve hayır sözcükleri içeriyor (sí, no); boolean olarak saklandı.
- "Saldo" içindeki sayılar ondalık virgül kullanıyor: 1.234,50, 1234.50 olarak okunur.
- "Saldo" içindeki N/A boş olarak okundu (4 değerden 1).
Dosyan bu bilgisayarda dönüştürülür ve asla yüklenmez.
Diğer örnekler:
Excel dosyasından PostgreSQL için, sütun sütun
Yukarıdaki örnek clientes_2024.xlsx, IntoSQL'in PostgreSQL için yazdığı haliyle: her sütunun dosyada ne tuttuğu, aldığı tür ve ilk değerinin betiğe nasıl yazıldığı.
| Dosyada | İlk değer | Sütun | PostgreSQL türü | Betikte |
|---|---|---|---|---|
| Nº Cliente | 00127 | no_cliente | text | '00127' |
| Nombre | Peña Muñoz | nombre | text | 'Peña Muñoz' |
| C.P. | 01234 | c_p | text | '01234' |
| Alta | 03/02/2024 | alta | date | '2024-02-03' |
| Activo | sí | activo | boolean | TRUE |
| Saldo | 1.234,50 | saldo | numeric(6,2) | 1234.50 |
Betiği PostgreSQL veritabanına yükleyin
İndirilen dosya düz bir .sql dosyasıdır. PostgreSQL araçlarıyla çalıştırın.
Terminalden
psql -v ON_ERROR_STOP=1 -d mydb -f clientes_2024.postgresql.sqlON_ERROR_STOP, psql'in ilk hatada durmasını sağlar. Betik tek bir işlemde çalışır, bu yüzden başarısız bir yükleme veritabanını olduğu gibi bırakır.
Bir veritabanı aracından
pgAdmin veya DBeaver'da betiği bir sorgu penceresinde açıp çalıştırın.
Betik olmadanPro
IntoSQL Pro, dosyayı masaüstü uygulamasından veya komut satırından doğrudan PostgreSQL veritabanına yükler; betik yazmanız gerekmez.
intosql load clientes_2024.xlsx --into postgres://user@localhost/mydbExcel dosyaları ve PostgreSQL hakkında bilmeniz gerekenler
IntoSQL'in Excel dosyalarında okudukları
- Üstünde başlıklar veya notlar olsa bile başlık satırı bulunur ve sondaki toplam satırı dışarıda bırakılır.
- Excel seri numarası olarak saklanan tarihler, hem 1900 hem 1904 tarih sisteminde gerçek tarihlere dönüşür.
- 00127 gibi başında sıfır olan kodlar metin olarak kalır. Bir çalışma kitabında birden fazla sayfa varsa sayfayı siz seçersiniz.
PostgreSQL hakkında bilmeniz gerekenler
- Ondalık sayılar numeric(p,s) olarak basamaklarını aynen korur, saat farkı olan tarihler ise timestamptz olur.
- PostgreSQL metni NUL karakterini tutamaz, bu yüzden bu karakter onu içeren değerlerden çıkarılır.
- Betik tek bir işlemde çalışır, böylece başarısız bir yükleme yarım iş bırakmaz.
Her değer türü PostgreSQL içinde nasıl saklanır
| Değer | PostgreSQL |
|---|---|
| Evet ve hayır | boolean |
| Tam sayılar | integer |
| Büyük tam sayılar | bigint |
| Ondalık sayılar | numeric(p,s) |
| Kayan noktalı sayılar | double precision |
| Tarihler | date |
| Günün saatleri | time |
| Saatli tarihler | timestamp |
| Saatli ve saat farkı olan tarihler | timestamptz |
| Metin | text |
Excel dosyasından PostgreSQL için sorular
Yanıtınızı bulamadınız mı? İletişim sayfasından bize yazın, bir kişi yanıt verir. İletişim sayfası
Excel dosyasını PostgreSQL için nasıl dönüştürürüm?
Dosyanızı bu sayfanın üstündeki dönüştürücüye bırakın. Başlığı bulur, her değeri okur ve yaptığı her düzeltmeyi listeleyerek PostgreSQL betiğini yazar. Betiği indirip psql ile çalıştırın.
Çalışma kitabının hangi sayfası dönüştürülür?
Görünür ilk sayfa. Çalışma kitabında birden fazla sayfa varsa bir Sayfa seçeneği çıkar ve başka birini seçebilirsiniz.
Hangi PostgreSQL türlerini kullanır?
Evet/hayır değerleri boolean, tam sayılar integer, ondalıklar numeric(p,s), tarihler date, saatli tarihler timestamp ve metin text olur. Boyutlar her sütundaki en uzun değere göre belirlenir.
PostgreSQL için baştaki sıfırları korur mu?
Evet. 00127 gibi bir kod metin olarak kalır; PostgreSQL onu text olarak saklar ve betik onu '00127' olarak yazar.
Verileri betik olmadan PostgreSQL veritabanına yükleyebilir mi?
Evet, IntoSQL Pro ile. Masaüstü uygulaması ve komut satırı PostgreSQL veritabanına bağlanır, önce tabloyu oluşturur ve satırları doğrudan yükler.
Excel dosyası ne kadar büyük olabilir?
Tarayıcıda çalışma kitabı bütün olarak okunur, bu yüzden sınır tarayıcının bu sayfaya verdiği bellektir. Masaüstü uygulaması ve komut satırı her boyutta çalışma kitabını alır; Apple M4'lü bir dizüstü bilgisayarda komut satırı bir milyon satırlık 117 MB'lık bir çalışma kitabını yaklaşık bir saniyede dönüştürür.