Excel и pgSQL - PullRequest
       53

Excel и pgSQL

1 голос
/ 06 мая 2010

Как импортировать данные из таблицы Excel в базу данных PGSQL в Linux?

Ответы [ 5 ]

1 голос
/ 07 мая 2010

Самый простой способ - экспортировать данные из Excel в CSV с помощью функции SAVE AS. Затем используйте встроенную функцию psql \COPY. Вы можете найти более подробную информацию об этом, используя команду \? COPY в psql или посетив документацию по COPY .

0 голосов
/ 23 августа 2018

попробуйте этот код:

<?php

$db = pg_connect("host=localhost port=5432 dbname=your_db user=postgres password=your_paswrd");
//call excel reader
require "excel_reader.php";
//press button
if(isset($_POST['submit'])){
    $target = basename($_FILES['fopenl']['name']) ;
    move_uploaded_file($_FILES['fopenl']['tmp_name'], $target);   
    $data = new Spreadsheet_Excel_Reader($_FILES['fopenl']['name'],false);   
//count row of excel xls
    $baris = $data->rowcount($sheet_index=0);    
//empty database before
    $drop = isset( $_POST["drop"] ) ? $_POST["drop"] : 0 ;
    if($drop == 1){
//empty employee table
             $truncate ="TRUNCATE TABLE employee";
             pgsql_query($truncate);
    };    
//import data from xls
    for ($i=1; $i<=$baris; $i++)
    {
//read from xls
      $emp_id = $data->val($i, 1);
      $date = $data->val($i, 2);
      $id_mac = $data->val ($i, 3);
      $val_a = $data->val($i, 4);
      $val_b = $data->val($i, 5);
      $stat = $data->val($i, 6);
      $note = $data->val ($i, 7);
//setelah data dibaca, masukkan ke tabel dari_finger
      $query_insert = "INSERT into employee (emp_id,date,id_mac,val_a,val_b,stat,note)values('$emp_id','$date','$id_mac','$val_a','$val_b','$stat','$note')";
//eksekusi query insert
      $insert = pg_query($query_insert);
    }    
  if(!$insert){
//jika import gagal
          die(pgsql_error());
      }else{
//jika impor berhasil
          echo " Data imported,";
    }
0 голосов
/ 13 мая 2010

Я делаю это все время и использую Navicat [1] (около $ 79). Вам понадобится окно Windows для запуска клиента, так как клиент Linux не может импортировать из Excel.

Вы можете импортировать практически любой формат данных (Access, Excel, DBF, Lotus ...), определить отображение между источником и местом назначения, которое можно сохранить.

Кстати, я не работаю в Navicat! Просто я попробовал несколько клиентов DBA, и это было наилучшим решением для импорта данных.

[1] http://www.navicat.com/en/products/navicat_pgsql/pgsql_overview.html

0 голосов
/ 07 мая 2010

Если вы делаете это на регулярной основе, то вам стоит заглянуть в Aqua Data Studio - я нашел это довольно полезным.

0 голосов
/ 07 мая 2010

Другой вариант (немного обходной путь, но он должен работать) - импортировать файл Excel в Access, а затем преобразовать полученную таблицу в PostgreSQL через соединение ODBC.

...