Aspose.Cells JSON Converter για .NET
Aspose.Cells JSON Ο μετατροπέας για .NET παρέχει αδιάλειπτη, υψηλής απόδοσης μετατροπή μεταξύ βιβλίων εργασίας Microsoft Excel (XLS, XLSX, XLSM) και δομών δεδομένων JSON. Είτε χρειάζεστε να σειριοποιήσετε το περιεχόμενο των φύλλων εργασίας σε JSON για web εφαρμογές είτε να ανακατασκευάσετε αρχεία Excel από JSON payloads, αυτό το plugin εξασφαλίζει ακρίβεια, επικύρωση σχήματος και αποδοτική απόδοση.
Εγκατάσταση και Ρύθμιση
- Εγκαταστήστε το πακέτο NuGet: δείτε Εγκατάσταση .
- Διαμορφώστε την αδειοδότηση μετρητή πριν χρησιμοποιήσετε τα API: δείτε Αδειοδότηση Μετρητή .
Με την ενεργοποιημένη αδειοδότηση και το εγκατεστημένο πακέτο, μπορείτε άμεσα να ενσωματώσετε τις ροές εργασίας μετατροπής JSON στις .NET εφαρμογές σας.
Βασικά Χαρακτηριστικά
Κάλυψη Μορφών
- Υποστηρίζει XLS, XLSX, XLSM, XLTX, XLTM, XLSB.
- Διατηρεί τύπους, στυλ, συγχωνευμένες περιοχές και μεταδεδομένα βιβλίου εργασίας.
- Εξασφαλίζει μετατροπές round-trip από Excel σε JSON και αντίστροφα.
Προσαρμοσμένη Χαρτογράφηση Σχήματος JSON
- Αντιστοιχίστε περιοχές σε πίνακες JSON ή αντικείμενα.
- Συμπεριλάβετε/εξαιρέστε κεφαλίδες, κρυφές γραμμές και υποσέλιδα.
- Έλεγχος μορφοποίησης για αριθμούς, ημερομηνίες και λογικές τιμές.
- Συμφωνία εξόδων JSON με συμβάσεις REST API ή υπάρχοντα σχήματα.
Επεξεργασία Βάσει Ροής
- Υποστήριξη Memory Stream: Μετατρέψτε απευθείας σε memory streams για επεξεργασία εντός μνήμης.
- Αποδοτικό I/O: Επεξεργαστείτε μεγάλα σύνολα δεδομένων χρησιμοποιώντας ροή ανάγνωσης/εγγραφής.
- Ενσωμάτωση Web: Εξάγετε JSON απευθείας σε ροές απαντήσεων HTTP σε web εφαρμογές.
- Μηδενική Πρόσβαση στο Σύστημα Αρχείων: Ολοκληρώστε μετατροπές χωρίς να αγγίξετε την αποθήκευση στο δίσκο.
Απόδοση και ροή
- Μετατροπή γραμμή-γραμμή ή σε παρτίδες χωρίς φόρτωση ολόκληρου βιβλίου εργασίας.
- Υποστηρίζει async I/O για μη-αποκλειστικές λειτουργίες στο ASP.NET Core.
- Μειώνει το αποτύπωμα μνήμης για μετατροπές μεγάλης κλίμακας.
Προηγμένες επιλογές
- Προσαρμοσμένοι μετασχηματιστές τιμών κελιών (π.χ., σειριακοποιητές ημερομηνίας).
- Έλεγχος εσοχής JSON, κωδικοποίησης και πολιτικών null.
- Διατήρηση αρχικών μηδενικών, ειδικών χαρακτήρων και μορφών ειδικών για την περιοχή.
Επικύρωση εξόδου και διασφάλιση ποιότητας
- Επαλήθευση Περιεχομένου: Επικυρώστε ότι η έξοδος JSON περιέχει τα αναμενόμενα δεδομένα.
- Προγραμματιστικός Έλεγχος: Αναζήτηση και επαλήθευση συγκεκριμένων τιμών σε παραγόμενο JSON.
- Έλεγχοι Ακεραιότητας Δεδομένων: Διασφάλιση ότι κρίσιμα πεδία είναι παρόντα στην έξοδο.
Διαχείριση σφαλμάτων και επικύρωση
- Ανίχνευση invalid formulas, corrupt streams ή schema mismatches.
- validation callbacks για τη διαχείριση ή τη διόρθωση σφαλμάτων.
- Clear exception hierarchy για debugging και troubleshooting.
Παραδείγματα Χρήσης
Βασική Μετατροπή: Excel σε JSON
Ο πιο απλός τρόπος για να μετατρέψετε ένα αρχείο Excel σε JSON χρησιμοποιώντας μία μόνο γραμμή κώδικα:
using Aspose.Cells.LowCode;
string src = "mytemplate.xlsx";
JsonConverter.Process(src, "result\\PluginJson1.json");Αυτό μετατρέπει ολόκληρο το βιβλίο εργασίας σε αρχείο JSON με τις προεπιλεγμένες ρυθμίσεις.
Προηγμένη Μετατροπή με Έξοδο Βασισμένη σε Ροή
ImageOrPrintOptions: Λεπτομερείς ρυθμίσεις απόδοσης εικόνας:
using Aspose.Cells.LowCode;
using System.IO;
using System.Text;
string src = "template.xlsx";
LowCodeLoadOptions lclopts = new LowCodeLoadOptions();
lclopts.InputFile = src;
LowCodeSaveOptions lcsopts = new LowCodeSaveOptions();
MemoryStream ms = new MemoryStream();
lcsopts.OutputStream = ms;
JsonConverter.Process(lclopts, lcsopts);
string jsonContent = Encoding.ASCII.GetString(ms.ToArray());
Console.WriteLine(jsonContent.IndexOf("Column1") > 0
? "Found the first cell value"
: "Cannot find the expected cell value");Ανάλυση Χαρακτηριστικού: Έξοδος Βασισμένη σε Ροή
Μετατροπή σε ροές μνήμης για ευέλικτη επεξεργασία και ενσωμάτωση:
// Create memory stream for output
MemoryStream ms = new MemoryStream();
lcsopts.OutputStream = ms;
// Perform conversion
JsonConverter.Process(lclopts, lcsopts);
// Access the JSON as byte array
byte[] jsonBytes = ms.ToArray();
// Access the JSON as string
string jsonString = Encoding.UTF8.GetString(jsonBytes);
// Use in web API
return Content(jsonString, "application/json");Περιστάσεις Χρήσης:
- Τελικά σημεία REST API που επιστρέφουν δεδομένα Excel ως JSON
- Λειτουργίες cloud με εφήμερη αποθήκευση
- Μικροϋπηρεσίες που επεξεργάζονται δεδομένα στη μνήμη
- Αποθήκευση των αναπαραστάσεων JSON σε Redis ή κρυφή μνήμη
- Ροές δεδομένων σε πραγματικό χρόνο από πρότυπα Excel
- Δοκιμή και επικύρωση χωρίς είσοδο/έξοδο αρχείων
Ανάλυση χαρακτηριστικών: Επικύρωση εξόδου
Επαληθεύστε ότι το μετατρεπόμενο JSON περιέχει τα αναμενόμενα δεδομένα:
using System;
using System.Text;
using System.Text.Json;
using System.IO;
MemoryStream ms = new MemoryStream();
string jsonContent = Encoding.UTF8.GetString(ms.ToArray());
// Check for specific column headers
bool hasColumn1 = jsonContent.IndexOf("Column1") > 0;
bool hasColumn2 = jsonContent.IndexOf("Column2") > 0;
// Validate data presence
if (hasColumn1 && hasColumn2)
{
Console.WriteLine("All expected columns found in JSON output");
}
else
{
Console.WriteLine("Warning: Missing expected columns");
}
// Parse and validate JSON structure
try
{
var jsonDoc = JsonDocument.Parse(jsonContent);
Console.WriteLine("JSON is valid and well-formed");
}
catch (JsonException ex)
{
Console.WriteLine($"Invalid JSON: {ex.Message}");
}Στρατηγικές Επικύρωσης:
- Αναζήτηση Περιεχομένου: Χρησιμοποιήστε
IndexOf()για να βρείτε συγκεκριμένα ονόματα πεδίων ή τιμές - Ανάλυση JSON: Αναλύστε την έξοδο για να επαληθεύσετε την εγκυρότητα της δομής
- Επικύρωση Σχήματος: Συγκρίνετε με το αναμενόμενο σχήμα JSON
- Έλεγχοι Τύπων Δεδομένων: Βεβαιωθείτε ότι οι αριθμοί, οι ημερομηνίες και τα boolean είναι σωστά μορφοποιημένα
- Δοκιμές Πληρότητας: Επαληθεύστε ότι όλες οι αναμενόμενες γραμμές/στήλες είναι παρούσες
Ανάλυση Χαρακτηριστικών: Οφέλη του LowCode API
Το LowCode API παρέχει απλοποιημένη, βελτιστοποιημένη μετατροπή:
// Traditional API (verbose)
Workbook workbook = new Workbook("sample.xlsx");
workbook.Save("output.json", SaveFormat.Json);
// LowCode API (concise)
JsonConverter.Process("sample.xlsx", "output.json");Πλεονεκτήματα LowCode:
- Λιγότερες γραμμές κώδικα
- Μειωμένο αποτύπωμα μνήμης
- Ταχύτερη εκτέλεση
- Καθαρότερη σύνταξη
- Ενσωματωμένες βέλτιστες πρακτικές
SplitPartIndexOffset: Αρχικός αριθμός για την αρίθμηση σελίδας/διαίρεσης
Για σενάρια που απαιτούν μέγιστη προσαρμογή, χρησιμοποιήστε το παραδοσιακό Workbook API:
using Aspose.Cells;
// Load your source workbook
Workbook workbook = new Workbook("sample.xlsx");
// Configure JSON save options
JsonSaveOptions saveOptions = new JsonSaveOptions();
saveOptions.ExportArea = new CellArea
{
StartRow = 0,
StartColumn = 0,
EndRow = 10,
EndColumn = 5
};
saveOptions.ExportAsString = true;
saveOptions.Indent = " "; // Pretty-print with 2-space indentation
// Convert the workbook to JSON file
workbook.Save("sample_out.json", saveOptions);Παράδειγμα ενσωμάτωσης Web API
Χρησιμοποιήστε μετατροπή βασισμένη σε ροή σε ελεγκτές ASP.NET Core:
[HttpGet("export-to-json")]
public IActionResult ExportToJson(string filename)
{
try
{
LowCodeLoadOptions loadOpts = new LowCodeLoadOptions();
loadOpts.InputFile = filename;
LowCodeSaveOptions saveOpts = new LowCodeSaveOptions();
MemoryStream ms = new MemoryStream();
saveOpts.OutputStream = ms;
JsonConverter.Process(loadOpts, saveOpts);
string jsonContent = Encoding.UTF8.GetString(ms.ToArray());
return Content(jsonContent, "application/json");
}
catch (Exception ex)
{
return StatusCode(500, $"Conversion error: {ex.Message}");
}
}Επεξεργασία παρτίδας με επικύρωση
Επεξεργασία πολλαπλών αρχείων με επικύρωση εξόδου:
string[] excelFiles = Directory.GetFiles("input", "*.xlsx");
foreach (string file in excelFiles)
{
try
{
LowCodeLoadOptions loadOpts = new LowCodeLoadOptions();
loadOpts.InputFile = file;
LowCodeSaveOptions saveOpts = new LowCodeSaveOptions();
MemoryStream ms = new MemoryStream();
saveOpts.OutputStream = ms;
JsonConverter.Process(loadOpts, saveOpts);
string json = Encoding.UTF8.GetString(ms.ToArray());
// Validate JSON before saving
if (json.Length > 0 && json.Contains("{"))
{
string outputFile = Path.Combine("output",
Path.GetFileNameWithoutExtension(file) + ".json");
File.WriteAllText(outputFile, json);
Console.WriteLine($"✓ Converted: {Path.GetFileName(file)}");
}
else
{
Console.WriteLine($"✗ Invalid output: {Path.GetFileName(file)}");
}
}
catch (Exception ex)
{
Console.WriteLine($"✗ Error processing {file}: {ex.Message}");
}
}Συμβουλές και Καλές Πρακτικές
Βελτιστοποίηση Απόδοσης
- Χρησιμοποιήστε LowCode API: Εκμεταλλευτείτε
JsonConverter.Process()για ταχύτερες μετατροπές με λιγότερο κόστος. - Επεξεργασία Βάσει Ροής: Χρησιμοποιήστε ροές μνήμης για λειτουργίες εντός μνήμης ώστε να αποφύγετε το I/O αρχείων.
- Μεγέθη Παρτίδων: Για μεγάλα βιβλία εργασίας, ενεργοποιήστε τη λειτουργία ροής και ρυθμίστε τα μεγέθη παρτίδων.
- Ασύγχρονες λειτουργίες: Χρησιμοποιήστε async APIs για μετατροπές μεγάλης διάρκειας σε web εφαρμογές.
Ποιότητα Δεδομένων
- Επικύρωση εξόδου: Πάντα επικυρώστε την έξοδο JSON χρησιμοποιώντας αναζητήσεις συμβολοσειρών ή αναλυτές JSON.
- Ορισμός Σχήματος: Ορίστε σχήματα JSON μία φορά και επαναχρησιμοποιήστε τα σε πολλαπλές εργασίες.
- Μετασχηματιστές: Χρησιμοποιήστε προσαρμοσμένους μετασχηματιστές για συνεπή μορφοποίηση ημερομηνιών και αριθμών.
- Επικύρωση Εισόδου: Επικυρώστε το εισερχόμενο JSON πριν την εισαγωγή στο Excel.
Διαχείριση μνήμης
- Αποδεσμεύστε Ροές: Πάντα αποδεσμεύετε τις ροές μνήμης μετά τη χρήση για να ελευθερώσετε μνήμη.
- Επαναχρησιμοποίηση Stream: Επαναφορά και επαναχρησιμοποίηση memory streams για batch conversions.
- Καθαρισμός Πόρων: Τυλίξτε τις λειτουργίες μετατροπής σε μπλοκ try-finally για εγγυημένο καθαρισμό.
Ανάπτυξη Παραγωγής
- Διαχείριση Σφαλμάτων: Τυλίξτε τις κλήσεις μετατροπής σε μπλοκ try-catch για να διαχειριστείτε σφάλματα άδειας και I/O.
- Καταγραφή: Καταγράψτε τα αποτελέσματα μετατροπής και τα αποτελέσματα επικύρωσης για ίχνη ελέγχου.
- Επαλήθευση Περιεχομένου: Χρήση
IndexOf()ή ανάλυση JSON για να επαληθευτούν τα κρίσιμα πεδία. - Κωδικοποίηση: Χρησιμοποιήστε κωδικοποίηση UTF8 για υποστήριξη διεθνών χαρακτήρων.
Κοινά Προβλήματα και Λύσεις
| Πρόβλημα | Επίλυση |
|---|---|
| Το αρχείο δεν βρέθηκε | Επαληθεύστε ότι το input file path είναι σωστό και προσβάσιμο |
| Μη υποστηριζόμενη μορφή αρχείου | Βεβαιωθείτε ότι η μορφή εισόδου υποστηρίζεται (XLS, XLSX, XLSM, κ.λπ.) |
| Η αναμενόμενη τιμή δεν βρέθηκε | Ελέγξτε αν τα ονόματα στηλών/πεδίων ταιριάζουν ακριβώς με τις κεφαλίδες του Excel |
| Κενή έξοδος JSON | Επαληθεύστε ότι το φύλλο εργασίας περιέχει δεδομένα και δεν είναι κρυφό |
| Μη έγκυρο JSON | Αναλύστε την έξοδο για να εντοπίσετε δομικά προβλήματα |
| Υπέρβαση μνήμης | Χρησιμοποιήστε λειτουργία ροής για πολύ μεγάλα βιβλία εργασίας |
| Προβλήματα κωδικοποίησης | Χρήση Encoding.UTF8 αντί για ASCII για διεθνείς χαρακτήρες |
| Σφάλμα θέσης ροής | Επαναφορά θέσης ροής με ms.Seek(0, SeekOrigin.Begin) πριν από την ανάγνωση |
Συχνές Ερωτήσεις
Τι είναι ο Aspose.Cells JSON Converter για .NET;? Επιτρέπει την προγραμματιστική μετατροπή αρχείων Excel από/προς δομές JSON σε εφαρμογές .NET με υψηλή απόδοση και ακρίβεια.
Πώς διαφέρει από το Aspose.Cells για .NET;? Aspose.Cells is a full-featured library. The JSON Converter focuses on Excel-to-JSON and JSON-to-Excel workflows with streamlined APIs.
Ποιοι τύποι αρχείων υποστηρίζονται;? XLS, XLSX, XLSM, XLTX, XLTM, XLSB και JSON.
Μπορεί η δημιουργία JSON να προσαρμοστεί;? Ναι. Χρησιμοποιήστε JsonSaveOptions για ρυθμίσεις εσοχής, κωδικοποίησης και μορφοποίησης.
Μπορώ να μετατρέψω απευθείας στη μνήμη χωρίς αρχεία;? Ναι! Χρησιμοποιήστε MemoryStream με LowCodeSaveOptions.OutputStream για πλήρη επεξεργασία εντός μνήμης.
Πώς μπορώ να επικυρώσω την έξοδο JSON;? Χρησιμοποιήστε IndexOf() για να αναζητήσετε τις αναμενόμενες τιμές ή να αναλύσετε το JSON με System.Text.Json.JsonDocument για επαλήθευση της δομής.
Ποια κωδικοποίηση πρέπει να χρησιμοποιήσω;? Χρησιμοποιήστε Encoding.UTF8 για σωστή υποστήριξη των διεθνών χαρακτήρων και των ειδικών συμβόλων.
Μπορώ να το χρησιμοποιήσω σε web APIs;? Απολύτως! Η προσέγγιση βασισμένη σε ροές είναι ιδανική για REST APIs, επιστρέφοντας JSON απευθείας από τα δεδομένα του Excel.
Σύνοψη Αναφοράς API
Κύριες Κλάσεις
JsonConverter: Στατική κλάση που παρέχει απλοποιημένες μεθόδους μετατροπήςLowCodeLoadOptions: Διαμόρφωση για τη φόρτωση αρχείων ExcelLowCodeSaveOptions: Διαμόρφωση για την έξοδο JSONJsonSaveOptions: Λεπτομερείς ρυθμίσεις μετατροπής JSON (παραδοσιακό API)MemoryStream: Ροή στη μνήμη για μετατροπές χωρίς σύστημα αρχείων
Απαραίτητα Ιδιότητες
InputFile: Διαδρομή αρχείου πηγής ExcelOutputStream: Ροή-στόχος για έξοδο JSON (επιτρέπει επεξεργασία στη μνήμη)ExportArea: Συγκεκριμένο εύρος κελιών για εξαγωγήExportAsString: Εξαγωγή όλων των τιμών ως συμβολοσειρέςIndent: Συμβολοσειρά εσοχής JSON για pretty‑printing
Κοινές Μέθοδοι
JsonConverter.Process(string, string): Απλή μετατροπή αρχείου-σε-αρχείοJsonConverter.Process(LowCodeLoadOptions, LowCodeSaveOptions): Προχωρημένη μετατροπή με επιλογέςMemoryStream.ToArray(): Λήψη περιεχομένου JSON ως πίνακα byteEncoding.UTF8.GetString(byte[]): Μετατροπή bytes σε συμβολοσειρά JSON