Βιβλιοθήκη ανοιχτού κώδικα .NET για ανάγνωση υπολογιστικών φύλλων του Excel  

Το ExcelDataReader σάς επιτρέπει να διαβάζετε μορφές αρχείων Microsoft Excel χρησιμοποιώντας C#.

Το ExcelDataReader είναι ένα ελαφρύ API ανοιχτού κώδικα γραμμένο σε C# για την ανάγνωση Αρχείων Microsoft Excel. Χρησιμοποιώντας το API μπορείτε να διαβάσετε εύκολα τα Microsoft XLS, XLSX και CSV. Το API υποστηρίζει παλαιότερες εκδόσεις αρχείων XLS πίσω στο Excel 2.0, υποστηρίζει ημερομηνίες κειμένου, τιμές προσωρινής αποθήκευσης τύπων και κενές διαδρομές φύλλων στο XLSX.

Επιπλέον, το API υποστηρίζει εναλλακτική κωδικοποίηση σε XLS και πιο ευέλικτο χειρισμό ονομάτων στηλών στα σύνολα δεδομένων. Είναι εύκολο να ρυθμιστεί και είναι διαθέσιμο στο NuGet.

Previous Next

Ξεκινώντας με το ExcelDataReader

Ο προτεινόμενος τρόπος εγκατάστασης του ExcelDataReader είναι από το NuGet. Χρησιμοποιήστε την ακόλουθη εντολή για ταχύτερη εγκατάσταση.

Εγκαταστήστε το ExcelDataReader από το NuGet

 Install-Package ExcelDataReader -Version 3.6.0

Διαβάστε αρχεία Excel μέσω .NET API

Το ExcelDataReader επιτρέπει στους προγραμματιστές C# .NET να διαβάζουν αρχεία Microsoft Excel εύκολα και αποτελεσματικά. Η μέθοδος επέκτασης AsDataSet() είναι ένας βολικός βοηθός για τη γρήγορη λήψη των δεδομένων. Το IExcelDataReader επεκτείνει τις διεπαφές System.Data.IDataReader και IDataRecord για πλοήγηση και ανάκτηση δεδομένων σε χαμηλότερο επίπεδο.

Ανάγνωση επικεφαλίδας και υποσέλιδου αρχείων του Excel μέσω C.NET

sing System;
using System.Text;
namespace ExcelDataReader.Core.BinaryFormat
{
    /// 
    /// Represents a string value of a header or footer.
    /// 
    internal sealed class XlsBiffHeaderFooterString : XlsBiffRecord
    {
        private readonly IXlsString _xlsString;
        internal XlsBiffHeaderFooterString(byte[] bytes, uint offset, int biffVersion)
            : base(bytes, offset)
        {
            if (biffVersion < 8)
                _xlsString = new XlsShortByteString(bytes, offset + 4);
            else if (biffVersion == 8)
                _xlsString = new XlsUnicodeString(bytes, offset + 4);
            else
                throw new ArgumentException("Unexpected BIFF version " + biffVersion, nameof(biffVersion));
        }
        /// 
        /// Gets the string value.
        /// 
        public string GetValue(Encoding encoding)
        {
            return _xlsString.GetValue(encoding);
        }
    }
}

Προστατευμένα βιβλία μέσω .NET API

Το ανοιχτού κώδικα .NET API ExcelDataReader σάς επιτρέπει επίσης να διαβάζετε έγγραφα του Microsoft Excel που προστατεύονται με κωδικό πρόσβασης. Μπορείτε να διαβάσετε αρχεία που προστατεύονται με κωδικό πρόσβασης χρησιμοποιώντας τη ρύθμιση κωδικού πρόσβασης στη ρύθμιση παραμέτρων του ExcelReaderConfiguration και ανοίγοντάς τα χρησιμοποιώντας τη μέθοδο CreateOpenXmlReader().

Πώς να εφαρμόσετε τη μορφοποίηση για την εξάπλωση κυττάρων φύλλων μέσω C API

// Use the following code to Access your protected Spreadsheet file 
var conf = new ExcelReaderConfiguration { Password = "yourPassword" };
excelReader = ExcelReaderFactory.CreateOpenXmlReader(excelStream, conf);

Εφαρμογή μορφοποίησης σε κυψέλες υπολογιστικών φύλλων του Excel χρησιμοποιώντας C

Η βιβλιοθήκη ExcelDataReader επιτρέπει στους προγραμματιστές λογισμικού να εφαρμόζουν τη μορφοποίηση στα υπερκυττάρια τους με μόνο μερικές γραμμές κώδικα C. Παρακαλούμε σημειώστε ότι το ExcelDataReader δεν υποστηρίζει τις δυνατότητες μορφοποίησης απευθείας. Πρέπει να ανακτήσετε τον αριθμό του κελιού που περιέχει τη συμβολοσειρά μορφοποίησης και να χρησιμοποιήσετε τη βιβλιοθήκη ExcelNumberFormat για σκοπούς μορφοποίησης. Τα παρακάτω παραδείγματα θα σας βοηθήσουν να καταλάβετε πώς να το επιτύχετε.

Πώς να εφαρμόσετε τη μορφοποίηση για την εξάπλωση κυττάρων φύλλων μέσω C API

string GetFormattedValue(IExcelDataReader reader, int columnIndex, CultureInfo culture)
{
    var value = reader.GetValue(columnIndex);
    var formatString = reader.GetNumberFormatString(columnIndex);
    if (formatString != null)
    {
        var format = new NumberFormat(formatString);
        return format.Format(value, culture);
    }
    return Convert.ToString(value, culture);
}
 Ελληνικά