Praca z wartościami rozdzielonymi (DSV) – tworzenie edytowalnego dokumentu

Jeśli jesteś programistą .NET, który potrzebuje create editable document obiektów z wartościami rozdzielonymi (DSV) takimi jak CSV lub TSV, trafiłeś we właściwe miejsce. W pierwszych 100 słowach wyjaśnimy, dlaczego GroupDocs.Editor dla .NET jest najpewniejszym sposobem na read delimited text C#, edycję i ponowne zapisanie bez utraty formatowania. Otrzymasz kompletny, gotowy do kopiowania i wklejania przepływ pracy, który naturalnie wpasowuje się w każde rozwiązanie Visual Studio.

Szybkie odpowiedzi

  • Która biblioteka najlepiej obsługuje edycję CSV w .NET? GroupDocs.Editor for .NET.
  • Czy mogę edytować duże pliki CSV w Visual Studio? Tak – API strumieniuje dane i unika ładowania całego pliku do pamięci.
  • Czy potrzebuję licencji do użytku produkcyjnego? Wymagana jest licencja komercyjna; dostępna jest darmowa wersja próbna.
  • Jakie formaty mogę uzyskać po edycji? CSV, TSV i formaty arkuszy kalkulacyjnych kompatybilne z Excel.
  • Czy API jest kompatybilne z .NET 6+? Absolutnie – obsługuje .NET Framework 4.5+, .NET Core 3.1+, .NET 5 i .NET 6.

Co oznacza „create editable document” w kontekście GroupDocs.Editor?

Create editable document oznacza wygenerowanie instancji EditableDocument, która reprezentuje zmienną wersję pliku źródłowego (CSV, TSV itp.) w pamięci. Ten obiekt pozwala odczytywać, modyfikować i ponownie zapisywać zawartość przy użyciu tego samego API. Udostępnia metody do pobierania tekstu dokumentu, stosowania zmian i zapisywania go w różnych formatach, zapewniając zachowanie wyrównania kolumn i cudzysłowów.

Dlaczego używać GroupDocs.Editor do obsługi DSV?

GroupDocs.Editor obsługuje ponad 50 formatów wejściowych i wyjściowych, w tym CSV, TSV oraz arkusze kalkulacyjne kompatybilne z Excel, przy jednoczesnym utrzymaniu zużycia pamięci poniżej 10 MB dla plików do 500 MB. Automatycznie zachowuje wyrównanie kolumn, zasady cudzysłowów i niestandardowe kodowania, co eliminuje potrzebę ręcznej logiki parsowania.

Wymagania wstępne

  • Visual Studio (dowolna aktualna edycja) – będziesz rozwijać i debugować bezpośrednio w IDE.
  • GroupDocs.Editor for .NET – pobierz najnowszy pakiet here.
  • Podstawowa znajomość C# – tutorial zakłada, że potrafisz utworzyć projekt konsolowy lub ASP.NET i dodać pakiety NuGet.

Importowanie przestrzeni nazw

Editor, EditableDocument oraz klasy opcji znajdują się w przestrzeni nazw GroupDocs.Editor.

Klasa DelimitedTextEditOptions jest punktem wejścia do definiowania separatora (przecinek, tabulator itp.) oraz innych reguł parsowania.

using System.Collections.Generic;
using System.IO;
using GroupDocs.Editor.Formats;
using GroupDocs.Editor.HtmlCss.Resources;
using GroupDocs.Editor.Options;

Jak utworzyć edytowalny dokument z pliku CSV?

Wczytaj źródłowy CSV za pomocą Editor i wywołaj metodę Edit, przekazując instancję DelimitedTextEditOptions określającą separator przecinka. Metoda zwraca EditableDocument, który możesz manipulować w pamięci. Ten dwustopniowy wzorzec — wczytaj → edytuj — obejmuje scenariusze read delimited text C# i zapewnia zachowanie pierwotnej struktury pliku.

Krok 1: Uzyskaj ścieżkę do wejściowego pliku DSV

Najpierw musisz określić absolutną lub względną ścieżkę do źródłowego pliku DSV. Dla demonstracji użyjemy prostego CSV znajdującego się w folderze Data projektu.

string inputFilePath = "Your Sample Document";

Krok 2: Utwórz instancję Editor

Editor jest klasą rdzeniową, która koordynuje wczytywanie, edycję i zapisywanie. Utworzenie jej przy użyciu obiektu FileInfo daje pełną kontrolę nad cyklem życia pliku.

using (Editor editor = new Editor(inputFilePath))
{

Krok 3: Utwórz opcje edycji DSV

DelimitedTextEditOptions informuje edytor, jak interpretować plik. Możesz ustawić separator, czy pierwszy wiersz zawiera nagłówki oraz kodowanie znaków.

    Options.DelimitedTextEditOptions editOptions = new DelimitedTextEditOptions(",");
    editOptions.ConvertDateTimeData = false;
    editOptions.ConvertNumericData = true;
    editOptions.TreatConsecutiveDelimitersAsOne = true;

Krok 4: Utwórz instancję EditableDocument

EditableDocument reprezentuje zmienną wersję pliku źródłowego w pamięci. Wywołanie Editor.Edit z opcjami zwraca EditableDocument. Ten obiekt przechowuje tekst pliku w zmiennym łańcuchu, gotowy do dowolnej operacji parse delimited values C#, której potrzebujesz.

    EditableDocument beforeEdit = editor.Edit(editOptions);

Krok 5: Edytuj zawartość dokumentu

GetDocumentText() zwraca bieżący tekst edytowalnego dokumentu jako łańcuch. Pobierz oryginalny tekst za pomocą EditableDocument.GetDocumentText(), wykonaj modyfikacje (np. zamień wartość w kolumnie) i zapisz wynik w nowym łańcuchu. To miejsce, w którym edit CSV .NET bez ingerencji w niskopoziomowe strumienie plików.

    string originalTextContent = beforeEdit.GetContent();
    string updatedTextContent = originalTextContent.Replace("SsangYong", "Chevrolet").Replace("Kyron", "Camaro");
    List<IHtmlResource> allResources = beforeEdit.AllResources;

Krok 6: Utwórz EditableDocument z zaktualizowaną zawartością

Owiń zmodyfikowany łańcuch z powrotem w EditableDocument. Ten krok finalizuje zmiany i przygotowuje obiekt do zapisu w dowolnym obsługiwanym formacie.

    EditableDocument afterEdit = EditableDocument.FromMarkup(updatedTextContent, allResources);

Krok 7: Utwórz opcje zapisu CSV

DelimitedTextSaveOptions określa, jak zapisać edytowaną zawartość z powrotem do pliku CSV. Gdy będziesz gotowy, aby zachować zmiany, skonfiguruj DelimitedTextSaveOptions. Możesz podać ten sam separator, inny lub nawet zmienić styl zakończenia linii.

    Options.DelimitedTextSaveOptions csvSaveOptions = new DelimitedTextSaveOptions(",");
    csvSaveOptions.Encoding = System.Text.Encoding.UTF8;

Krok 8: Utwórz opcje zapisu TSV

Jeśli potrzebujesz wersji rozdzielonej tabulatorem, po prostu zmień separator na \t. Ten sam EditableDocument może być zapisany wielokrotnie z różnymi opcjami.

    Options.DelimitedTextSaveOptions tsvSaveOptions = new DelimitedTextSaveOptions("\t");
    tsvSaveOptions.Encoding = System.Text.Encoding.UTF8;

Krok 9: Utwórz opcje zapisu arkusza kalkulacyjnego

SpreadsheetSaveOptions konfiguruje eksport dokumentu do formatów kompatybilnych z Excel, takich jak .xlsx. GroupDocs.Editor umożliwia również eksport edytowanych danych do formatu kompatybilnego z Excel (.xlsx). Klasa SpreadsheetSaveOptions automatycznie obsługuje typy kolumn, formuły i stylowanie komórek.

    Options.SpreadsheetSaveOptions cellsSaveOptions = new SpreadsheetSaveOptions(SpreadsheetFormats.Xlsm);

Krok 10: Przygotuj ścieżki zapisu

Zdefiniuj odrębne ścieżki wyjściowe dla każdego formatu. Używanie przejrzystych konwencji nazewnictwa (np. output.csv, output.tsv, output.xlsx) pomaga utrzymać porządek w projekcie.

    string outputCsvPath = Path.Combine(Constants.GetOutputDirectoryPath(inputFilePath), Path.GetFileNameWithoutExtension(inputFilePath) + ".csv");
    string outputTsvPath = Path.Combine(Constants.GetOutputDirectoryPath(inputFilePath), Path.GetFileNameWithoutExtension(inputFilePath) + ".tsv");
    string outputCellsPath = Path.Combine(Constants.GetOutputDirectoryPath(inputFilePath), Path.GetFileNameWithoutExtension(inputFilePath) + ".xlsm");

Krok 11: Zapisz edytowany dokument

Save() zapisuje dokument na dysku przy użyciu podanych opcji zapisu. Wywołaj EditableDocument.Save z odpowiednimi opcjami dla każdego docelowego formatu. API zapisuje plik bezpośrednio na dysku, zachowując oryginalne kodowanie, chyba że je nadpiszesz.

    editor.Save(afterEdit, outputCsvPath, csvSaveOptions);
    editor.Save(afterEdit, outputTsvPath, tsvSaveOptions);
    editor.Save(afterEdit, outputCellsPath, cellsSaveOptions);

Krok 12: Usuń instancje EditableDocument

Zarówno Editor, jak i EditableDocument implementują IDisposable. Ich usunięcie zwalnia uchwyty plików i zasoby niezarządzane, co jest kluczowe przy przetwarzaniu wielu plików w zadaniu wsadowym.

    beforeEdit.Dispose();
    afterEdit.Dispose();
}
System.Console.WriteLine("WorkingWithDsv routine has successfully finished");

Częste problemy i rozwiązania

ProblemDlaczego się pojawiaRozwiązanie
Nieoczekiwane dodatkowe cudzysłowyDomyślny parser CSV może traktować wbudowane przecinki jako separatory.Ustaw EscapeMode = EscapeMode.DoubleQuote w DelimitedTextEditOptions.
Wzrost zużycia pamięci przy dużym plikuŁadowanie pliku 500 MB bez strumieniowania.Użyj Editor.Load z LoadOptions, które włączają leniwe ładowanie.
Niezgodność kodowaniaPlik źródłowy używa UTF‑16, ale opcje domyślnie ustawione są na UTF‑8.Jawnie ustaw Encoding = Encoding.Unicode w opcjach zapisu.

Najczęściej zadawane pytania

Q: Czy mogę używać GroupDocs.Editor dla .NET do edycji dużych plików CSV?
A: Tak, API strumieniuje dane i może obsługiwać pliki większe niż 1 GB bez ładowania całego dokumentu do pamięci.

Q: Czy GroupDocs.Editor dla .NET obsługuje inne formaty DSV poza CSV i TSV?
A: Absolutnie – każdy jednopunktowy separator (np. pionowa kreska |, średnik ;) jest obsługiwany, o ile zostanie określony w DelimitedTextEditOptions.

Q: Czy można dostosować kodowanie przy zapisywaniu plików DSV?
A: Tak, możesz ustawić właściwość Encoding w DelimitedTextSaveOptions na UTF‑8, UTF‑16, ISO‑8859‑1 lub dowolne kodowanie .NET, którego potrzebujesz.

Q: Czy mogę przekonwertować plik CSV na arkusz Excel przy użyciu GroupDocs.Editor dla .NET?
A: Tak – po edycji wystarczy użyć SpreadsheetSaveOptions, aby wyeksportować zawartość jako skoroszyt .xlsx.

Q: Gdzie mogę znaleźć więcej dokumentacji na temat GroupDocs.Editor dla .NET?
A: Szczegółowe odniesienia API i przykłady kodu są dostępne here.


Ostatnia aktualizacja: 2026-06-06
Testowano z: GroupDocs.Editor 23.10 for .NET
Autor: GroupDocs

Powiązane samouczki