Práce s oddělenými hodnotami (DSV) – vytvoření editovatelného dokumentu
Pokud jste vývojář .NET, který potřebuje vytvořit editovatelný dokument z oddělených hodnot (DSV) jako CSV nebo TSV, jste na správném místě. V prvních 100 slovech vysvětlíme, proč je GroupDocs.Editor pro .NET nejspolehlivějším způsobem, jak číst oddělený text C#, upravit jej a poté uložit zpět bez ztráty formátování. Získáte kompletní workflow připravené ke kopírování a vložení, které se přirozeně hodí do jakéhokoli řešení Visual Studio.
Rychlé odpovědi
- Která knihovna nejlépe zvládá úpravu CSV v .NET? GroupDocs.Editor pro .NET.
- Mohu upravovat velké CSV soubory ve Visual Studio? Ano – API streamuje data a vyhýbá se načítání celého souboru do paměti.
- Potřebuji licenci pro produkční použití? Vyžaduje se komerční licence; k dispozici je bezplatná zkušební verze.
- Jaké formáty mohu po úpravě exportovat? CSV, TSV a formáty tabulek kompatibilní s Excel.
- Je API kompatibilní s .NET 6+? Naprosto – podporuje .NET Framework 4.5+, .NET Core 3.1+, .NET 5 a .NET 6.
Co znamená „create editable document“ v kontextu GroupDocs.Editor?
Create editable document znamená vytvoření instance EditableDocument, která představuje mutovatelnou verzi zdrojového souboru (CSV, TSV, atd.) v paměti. Tento objekt vám umožní číst, měnit a znovu ukládat obsah pomocí stejného API. Poskytuje metody pro získání textu dokumentu, aplikaci změn a uložení v různých formátech, přičemž zachovává zarovnání sloupců a uvozovky.
Proč používat GroupDocs.Editor pro práci s DSV?
GroupDocs.Editor zpracovává více než 50 vstupních a výstupních formátů, včetně CSV, TSV a tabulek kompatibilních s Excelem, přičemž spotřeba paměti zůstává pod 10 MB pro soubory až do 500 MB. Automaticky také zachovává zarovnání sloupců, pravidla uvozování a vlastní kódování, což eliminuje potřebu ručního parsování.
Předpoklady
Předtím, než se ponoříme, ujistěte se, že máte nainstalováno:
- Visual Studio (jakékoli recentní vydání) – budete vyvíjet a ladit přímo v IDE.
- GroupDocs.Editor pro .NET – stáhněte nejnovější balíček zde.
- Základní znalost C# – tutoriál předpokládá, že umíte vytvořit konzolový nebo ASP.NET projekt a přidat NuGet balíčky.
Importování jmenných prostorů
Třídy Editor, EditableDocument a třídy možností se nacházejí v jmenném prostoru GroupDocs.Editor.
Třída DelimitedTextEditOptions je vstupním bodem pro definování oddělovače (čárka, tabulátor, atd.) a dalších pravidel parsování.
using System.Collections.Generic;
using System.IO;
using GroupDocs.Editor.Formats;
using GroupDocs.Editor.HtmlCss.Resources;
using GroupDocs.Editor.Options;
Jak vytvořit editovatelný dokument z CSV souboru?
Načtěte zdrojové CSV pomocí Editor a zavolejte metodu Edit, předávající instanci DelimitedTextEditOptions, která specifikuje čárkový oddělovač. Metoda vrátí EditableDocument, který můžete v paměti manipulovat. Tento dvoustupňový vzor – načíst → upravit – pokrývá scénáře read delimited text C# a zajišťuje, že původní struktura souboru zůstane zachována.
Krok 1: Získání cesty k vstupnímu DSV souboru
Nejprve musíte zadat absolutní nebo relativní cestu ke zdrojovému DSV souboru. Pro demonstraci použijeme jednoduché CSV umístěné ve složce projektu Data.
string inputFilePath = "Your Sample Document";
Krok 2: Vytvoření instance Editoru
Editor je hlavní třída, která orchestruje načítání, úpravy a ukládání. Vytvořením instance s objektem FileInfo získáte plnou kontrolu nad životním cyklem souboru.
using (Editor editor = new Editor(inputFilePath))
{
Krok 3: Vytvoření DSV editovacích možností
DelimitedTextEditOptions říká editoru, jak soubor interpretovat. Můžete nastavit oddělovač, zda první řádek obsahuje hlavičky, a kódování znaků.
Options.DelimitedTextEditOptions editOptions = new DelimitedTextEditOptions(",");
editOptions.ConvertDateTimeData = false;
editOptions.ConvertNumericData = true;
editOptions.TreatConsecutiveDelimitersAsOne = true;
Krok 4: Vytvoření instance EditableDocument
EditableDocument představuje mutovatelnou verzi zdrojového souboru v paměti. Zavoláním Editor.Edit s možnostmi získáte EditableDocument. Tento objekt drží text souboru v mutovatelné řetězci, připravený pro jakoukoli operaci parse delimited values C#, kterou potřebujete.
EditableDocument beforeEdit = editor.Edit(editOptions);
Krok 5: Úprava obsahu dokumentu
GetDocumentText() vrací aktuální text editovatelného dokumentu jako řetězec. Získejte původní text pomocí EditableDocument.GetDocumentText(), proveďte úpravy (např. nahraďte hodnotu ve sloupci) a výsledek uložte do nového řetězce. Zde můžete edit CSV .NET bez zásahu do nízkoúrovňových souborových streamů.
string originalTextContent = beforeEdit.GetContent();
string updatedTextContent = originalTextContent.Replace("SsangYong", "Chevrolet").Replace("Kyron", "Camaro");
List<IHtmlResource> allResources = beforeEdit.AllResources;
Krok 6: Vytvoření EditableDocument s aktualizovaným obsahem
Zabalte upravený řetězec zpět do EditableDocument. Tento krok finalizuje změny a připraví objekt k uložení v libovolném podporovaném formátu.
EditableDocument afterEdit = EditableDocument.FromMarkup(updatedTextContent, allResources);
Krok 7: Vytvoření možností uložení CSV
DelimitedTextSaveOptions určuje, jak zapsat upravený obsah zpět do CSV souboru. Když jste připraveni změny uložit, nakonfigurujte DelimitedTextSaveOptions. Můžete specifikovat stejný oddělovač, jiný, nebo dokonce změnit styl konce řádku.
Options.DelimitedTextSaveOptions csvSaveOptions = new DelimitedTextSaveOptions(",");
csvSaveOptions.Encoding = System.Text.Encoding.UTF8;
Krok 8: Vytvoření možností uložení TSV
Pokud potřebujete verzi oddělenou tabulátory, jednoduše přepněte oddělovač na \t. Stejný EditableDocument lze uložit vícekrát s různými možnostmi.
Options.DelimitedTextSaveOptions tsvSaveOptions = new DelimitedTextSaveOptions("\t");
tsvSaveOptions.Encoding = System.Text.Encoding.UTF8;
Krok 9: Vytvoření možností uložení Spreadsheet
SpreadsheetSaveOptions konfiguruje export dokumentu do formátů kompatibilních s Excelem, jako je .xlsx. GroupDocs.Editor také umožňuje export upravených dat do formátu kompatibilního s Excelem (.xlsx). Třída SpreadsheetSaveOptions automaticky zpracovává typy sloupců, vzorce a stylování buněk.
Options.SpreadsheetSaveOptions cellsSaveOptions = new SpreadsheetSaveOptions(SpreadsheetFormats.Xlsm);
Krok 10: Připravení cest pro uložení
Definujte odlišné výstupní cesty pro každý formát. Použití jasných pojmenovacích konvencí (např. output.csv, output.tsv, output.xlsx) pomáhá udržet projekt přehledný.
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: Uložení upraveného dokumentu
Save() zapíše dokument na disk pomocí poskytnutých možností uložení. Zavolejte EditableDocument.Save s odpovídajícími možnostmi pro každý cílový formát. API zapisuje soubor přímo na disk, zachovává původní kódování, pokud jej nepřepíšete.
editor.Save(afterEdit, outputCsvPath, csvSaveOptions);
editor.Save(afterEdit, outputTsvPath, tsvSaveOptions);
editor.Save(afterEdit, outputCellsPath, cellsSaveOptions);
Krok 12: Uvolnění instancí EditableDocument
Jak Editor, tak EditableDocument implementují IDisposable. Uvolnění jejich prostředků uvolní souborové handle a neřízené zdroje, což je klíčové při zpracování mnoha souborů v dávkovém úkolu.
beforeEdit.Dispose();
afterEdit.Dispose();
}
System.Console.WriteLine("WorkingWithDsv routine has successfully finished");
Časté problémy a řešení
| Problém | Proč se to děje | Řešení |
|---|---|---|
| Neočekávané nadbytečné uvozovky | Výchozí CSV parser může považovat vložené čárky za oddělovače. | Nastavte EscapeMode = EscapeMode.DoubleQuote v DelimitedTextEditOptions. |
| Náraz paměti při velkém souboru | Načítání 500 MB souboru bez streamování. | Použijte Editor.Load s LoadOptions, které povolují lazy loading. |
| Neshoda kódování | Zdrojový soubor používá UTF‑16, ale možnosti mají výchozí UTF‑8. | Explicitně nastavte Encoding = Encoding.Unicode v možnostech uložení. |
Často kladené otázky
Q: Mohu použít GroupDocs.Editor pro .NET k úpravě velkých CSV souborů?
A: Ano, API streamuje data a dokáže zpracovat soubory větší než 1 GB bez načítání celého dokumentu do paměti.
Q: Podporuje GroupDocs.Editor pro .NET další DSV formáty kromě CSV a TSV?
A: Naprosto – jakýkoli jednoslovní oddělovač (např. svislítko |, středník ;) je podporován, pokud jej specifikujete v DelimitedTextEditOptions.
Q: Je možné přizpůsobit kódování při ukládání DSV souborů?
A: Ano, můžete nastavit vlastnost Encoding v DelimitedTextSaveOptions na UTF‑8, UTF‑16, ISO‑8859‑1 nebo libovolné .NET Encoding, které potřebujete.
Q: Mohu převést CSV soubor na Excel tabulku pomocí GroupDocs.Editor pro .NET?
A: Ano – po úpravě jednoduše použijte SpreadsheetSaveOptions k exportu obsahu jako .xlsx sešitu.
Q: Kde najdu další dokumentaci k GroupDocs.Editor pro .NET?
A: Podrobné reference API a ukázkové kódy jsou k dispozici zde.
Poslední aktualizace: 2026-06-06
Testováno s: GroupDocs.Editor 23.10 pro .NET
Autor: GroupDocs