Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

Προβλημα στη φόρτωση excel σε Dataset

Îåêßíçóå áðü ôï ìÝëïò Δημήτρης Μπούνδρης. Τελευταία δημοσίευση από το μέλος Δημήτρης Μπούνδρης στις 11-03-2011, 13:53. Υπάρχουν 3 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  11-03-2011, 12:08 64122

    Προβλημα στη φόρτωση excel σε Dataset

    Hi

    Προσπαθώ να διαβάσω ένα excel file χρησιμοποιώντας το παρακάτω κώδικα 

                        String sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + FileName + ";" + "Extended Properties=\"Excel 8.0;HDR=Yes;FMT=Delimited\"";
    
                        OleDbConnection objConn = new OleDbConnection(sConnectionString);
    
                        objConn.Open();
                        OleDbCommand objCmdSelect = new OleDbCommand("SELECT * FROM [" + "Sheet1" + "$]", objConn);
    
                        OleDbDataAdapter objAdapter1 = new OleDbDataAdapter();
                        objAdapter1.SelectCommand = objCmdSelect;
    
                        DataSet dsExcelContent = new DataSet();
                        objAdapter1.Fill(dsExcelContent);

    αλλά έχω πρόβλημα με στήλες που έχουν comma separated τιμές όπως για παράδειγμα η δεύτερη γραμμή όπου μου φορτώνει κενή τιμή στο Dataset.

    Υπάρχει κάποια λύση εδω;

    Abkhazia 7 840 0,03 3/3/2011
    Abkhazia Mobile 7 9407, 9409 0,04 3/3/2011


    Dimitris Boundris
    Software Engineer
  •  11-03-2011, 12:19 64123 σε απάντηση της 64122

    Απ: Προβλημα στη φόρτωση excel σε Dataset

    Ποιά είναι η comma-separated τιμή και ποιός ο αριθμός με δεκαδικά Stick out tongue ? Το Excel (ή ο Jet OLEDB driver) δεν μπορεί να καταλάβει τη διαφορά μεταξύ των δύο όταν τρέχει σε μηχάνημα με ελληνικό local. Γενικά, το Excel δεν έχει τύπους για τις στήλες οπότε "μαντεύει" τον τύπο των δεδομένων διαβάζοντας τις Χ πρώτες γραμμές. Για να μπορέσεις να διαβάσεις τις comma-separated τιμές θα πρέπει να το αναγκάσεις να τις δει ως text. Αυτό γίνεται είτε προσθέτοντας το IMEX=1 στα Extended Properties (δες A Caution about Mixed Data Types) ή φροντίζοντας να υπάρχει το μονό εισαγωγικό πριν από κάθε τιμή ,π.χ. '840 . Με τον τρόπο αυτό δηλώνεις ότι η τιμή είναι text και όχι ημερομηνία ή αριθμός.
    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  11-03-2011, 13:21 64124 σε απάντηση της 64123

    Απ: Προβλημα στη φόρτωση excel σε Dataset

    Υποθέτω 'οτι κάθε comma seperated value είναι και διαφορετικό record στο dataset με replication στα υπόλοιπα πεδία που δεν έχουν πολλαπλές τιμές.Σε αυτή την περίπτωση θα πρέπει έιτε αφού περάσεις το excel file στο dataset να χωρίσεις τα csv data και να δημιουργήσεις νέα records είτε στο excel file να τρέξεις κάποιο macro που να κάνει αυτή τη δουλεία στα κελία οπότε εισάγωντας το excel στο dataset τα fields είναι έτοιμα.
  •  11-03-2011, 13:53 64131 σε απάντηση της 64124

    Απ: Προβλημα στη φόρτωση excel σε Dataset

    Ευχαριστώ πολύ παιδιά.

    Smile

     


    Dimitris Boundris
    Software Engineer
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems