Guardar libro de trabajo en texto o formato CSV en Aspose.Cells
Contents
[
Hide
]
A veces, desea convertir o guardar un libro de trabajo con varias hojas de trabajo en formato de texto. Para formatos de texto (por ejemplo, TXT, TabDelim, CSV, etc.), de forma predeterminada, tanto Microsoft Excel como Aspose.Cells guardan solo el contenido de la hoja de trabajo activa.
El siguiente ejemplo de código explica cómo guardar un libro completo en formato de texto. Cargue el libro de origen, que podría ser cualquier archivo de hoja de cálculo de Excel u OpenOffice Microsoft (por ejemplo, XLS, XLSX, XLSM, XLSB, ODS, etc.) con cualquier número de hojas de trabajo.
Cuando se ejecuta el código, convierte los datos de todas las hojas del libro de trabajo al formato TXT.
Puede modificar el mismo ejemplo para guardar su archivo en CSV. De forma predeterminada, TxtSaveOptions.Separator es una coma, así que no especifique un separador si guarda en formato CSV.
C#
string filePath = "fuente.xlsx";
// Cargue su libro de trabajo de origen
Libro de trabajo libro de trabajo = nuevo libro de trabajo (filePath);
//matriz de 0 bytes
byte[]workbookData = nuevo byte[0];
//Opciones para guardar texto. Puedes usar cualquier tipo de separador
TxtSaveOptions opts = new TxtSaveOptions();
opciones.Separador = '\t';
// Copie cada dato de la hoja de trabajo en formato de texto dentro de la matriz de datos del libro de trabajo
para (int idx = 0; idx< workbook.Worksheets.Count; idx++)
{
//Save the active worksheet into text format
MemoryStream ms = new MemoryStream();
workbook.Worksheets.ActiveSheetIndex = idx;
workbook.Save(ms, opts);
//Save the worksheet data into sheet data array
ms.Position = 0;
byte[] sheetData = ms.ToArray();
//Combine this worksheet data into workbook data array
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;
}
//Save entire workbook data into file
File.WriteAllBytes(filePath + ".out.txt", workbookData);