Uložit sešit do textového formátu CSV
Zavedení
Při práci s daty může zvolený formát skutečně určit, jak snadno s nimi můžete pracovat. Mezi nejběžnější formáty pro práci s tabulkovými daty patří CSV (Comma-Separated Values). Pokud jste vývojář pracující se soubory aplikace Excel a potřebujete převést sešity do formátu CSV, Aspose.Cells for .NET je fantastická knihovna, která tento úkol zjednoduší. V tomto tutoriálu rozebereme kroky k bezproblémovému převodu sešitu aplikace Excel do textového formátu CSV.
Předpoklady
Než se do toho pustíme, ujistěte se, že máte vše připraveno, abyste mohli začít:
- Základní znalost C# a .NET: Protože budeme psát kód v C#, znalost jazyka a .NET frameworku je nezbytná.
- Knihovna Aspose.Cells: Ujistěte se, že máte ve vývojovém prostředí nainstalovanou knihovnu Aspose.Cells for .NET. Můžete si jej stáhnoutzde.
- Visual Studio nebo libovolné C# IDE: K psaní a spouštění kódu budete potřebovat integrované vývojové prostředí (IDE). Visual Studio je oblíbenou volbou.
- Sešit aplikace Excel: Připravte si vzorový sešit aplikace Excel (např. “sešit1.xls”), který obsahuje některá data pro testování převodu.
Importujte balíčky
Nyní, když máme pokryty naše předpoklady, je prvním krokem v procesu import potřebných balíčků. Ve svém projektu C# musíte v horní části souboru kódu zahrnout následující jmenný prostor:
using System.IO;
using Aspose.Cells;
using System;
Tyto jmenné prostory vám umožní přístup ke třídám a metodám potřebným pro práci se soubory aplikace Excel a správu paměťových proudů.
Krok 1: Definujte cestu k adresáři dokumentů
Prvním krokem v našem procesu je definovat, kde jsou naše dokumenty (sešity Excelu) uloženy. To je nezbytné, protože to našemu programu umožňuje vědět, kde najít soubory, které potřebuje zpracovat.
// Cesta k adresáři dokumentů.
string dataDir = "Your Document Directory";
Nezapomeňte vyměnit"Your Document Directory"
se skutečnou cestou, kde se nachází váš soubor “book1.xls”. Může to být adresář ve vašem počítači nebo cesta k serveru.
Krok 2: Načtěte zdrojový sešit
Dále musíme načíst sešit Excel, který bude převeden do formátu CSV.
// Načtěte zdrojový sešit
Workbook workbook = new Workbook(dataDir + "book1.xls");
TheWorkbook
třída z knihovny Aspose.Cells umožňuje manipulaci a přístup k sešitům aplikace Excel. Předáním cesty k souboru načítáme určený sešit ke zpracování.
Krok 3: Inicializujte bajtové pole pro data sešitu
Než začneme převádět sešit do CSV, musíme inicializovat prázdné pole bajtů, které nakonec pojme všechna data listu.
// Pole 0 bajtů
byte[] workbookData = new byte[0];
Toto bajtové pole spojí data z každého listu do jediné struktury, kterou můžeme později zapsat do souboru.
Krok 4: Nastavte možnosti ukládání textu
Nyní nastavíme možnosti, jak chceme uložit formát textu. Můžete si vybrat vlastní oddělovače nebo držet s tabulátory.
// Možnosti uložení textu. Můžete použít jakýkoli typ oddělovače
TxtSaveOptions opts = new TxtSaveOptions();
opts.Separator = '\t'; // Karta nastavení jako oddělovač
V tomto příkladu používáme jako oddělovač znak tabulátoru. Můžete vyměnit'\t'
s jakoukoli postavou, kterou si přejete, jako je čárka (,
), v závislosti na tom, jak chcete formát CSV.
Krok 5: Iterujte každý list
Dále projdeme všechny listy v sešitu a každý si uložíme do svéhoworkbookData
pole, ale nejprve musíte vybrat, se kterým listem chcete pracovat.
// Zkopírujte data každého listu v textovém formátu do datového pole sešitu
for (int idx = 0; idx < workbook.Worksheets.Count; idx++)
{
// Uložte aktivní list do textového formátu
MemoryStream ms = new MemoryStream();
workbook.Worksheets.ActiveSheetIndex = idx;
workbook.Save(ms, opts);
Smyčka prochází každým listem v sešitu.ActiveSheetIndex
je nastaven tak, že pokaždé, když procházíme smyčkou, ukládáme aktuální list. Výsledky se uloží do paměti pomocí aMemoryStream
.
Krok 6: Načtěte data listu
Po uložení listu do paměťového toku je dalším krokem načtení těchto dat a jejich připojení k našemuworkbookData
pole.
// Uložte data listu do pole dat listu
ms.Position = 0; // Resetovat pozici toku paměti
byte[] sheetData = ms.ToArray(); // Získejte bajtové pole
ms.Position = 0;
resetuje pozici pro čtení po zápisu. Pak použijemeToArray()
převést paměťový proud na bajtové pole, které obsahuje data listu.
Krok 7: Kombinujte data listu
Nyní zkombinujeme data z každého listu do jednohoworkbookData
pole inicializováno dříve.
// Zkombinujte tato data listu do datového pole sešitu
byte[] combinedArray = new byte[workbookData.Length + sheetData.Length];
Array.Copy(workbookData, 0, combinedArray, 0, workbookData.Length);
Array.Copy(sheetData, 0, combinedArray, workbookData.Length, sheetData.Length);
workbookData = combinedArray;
}
Vytvoříme nové pole, které je dostatečně velké, aby se do něj vešla jak stávající data sešitu, tak data nového listu. Poté zkopírujeme stávající a nová data do tohoto kombinovaného pole pro pozdější použití.
Krok 8: Uložte celá data sešitu do souboru
Nakonec se všemi údaji spojenými v našemworkbookData
pole, můžeme toto pole uložit do zadané cesty k souboru.
//Uložte celá data sešitu do souboru
File.WriteAllBytes(dataDir + "out.txt", workbookData);
WriteAllBytes
vezme kombinované bajtové pole a zapíše je do textového souboru s názvem “out.txt” v určeném adresáři.
Závěr
A tady to máte! Úspěšně jste převedli sešit aplikace Excel do formátu CSV pomocí Aspose.Cells for .NET. Nejen, že je tento proces efektivní, ale umožňuje snadnou manipulaci s excelovými daty pro další analýzu nebo reportování. Nyní můžete automatizovat své úlohy zpracování dat nebo dokonce integrovat tuto funkci do větších aplikací.
FAQ
Mohu pro soubor CSV použít různé oddělovače?
Ano, můžete změnitopts.Separator
na jakýkoli požadovaný znak, jako jsou čárky nebo čárky.
Je Aspose.Cells zdarma k použití?
Aspose.Cells není zdarma, ale můžete získat bezplatnou zkušební verzizde.
Do jakých typů formátů mohu ukládat kromě CSV?
Aspose.Cells umožňuje ukládání do více formátů včetně XLSX, PDF a dalších.
Mohu zpracovat velké soubory aplikace Excel pomocí Aspose.Cells?
Ano, Aspose.Cells je navržen tak, aby efektivně zpracovával velké soubory, ale výkon může záviset na systémových prostředcích.
Kde najdu podrobnější dokumentaci?
Najdete na nich komplexní dokumentaci a příkladyreferenční místo.