Открытие файлов с различными форматами

Открытие файлов с различными форматами

Aspose.Cells позволяет разработчикам открывать файлы электронных таблиц различных форматов, такие как SpreadsheetML, файлы, разделенные запятыми (CSV), файлы с разделителями табуляции или табулированные значения (TSV), файлы ODS. Для открытия таких файлов разработчики могут использовать тот же метод, который они используют для открытия файлов различных версий Microsoft Excel.

Открытие файлов SpreadsheetML

Файлы SpreadsheetML представляют собой XML-представление электронных таблиц, включая всю информацию о них, такую как форматирование, формулы и т. д. С момента Microsoft Excel XP добавлена опция экспорта в формате XML в Microsoft Excel, которая экспортирует ваши электронные таблицы в файлы SpreadsheetML.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
// The path to the documents directory.
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
// Opening SpreadsheetML Files
// Instantiate LoadOptions specified by the LoadFormat.
LoadOptions loadOptions3 = new LoadOptions(LoadFormat.SpreadsheetML);
// Create a Workbook object and opening the file from its path
Workbook wbSpreadSheetML = new Workbook(dataDir + "Book3.xml", loadOptions3);
Console.WriteLine("SpreadSheetML file opened successfully!");

Открытие файлов HTML

Aspose.Cells позволяет открывать файл HTML в объект Workbook. Файл HTML должен быть ориентирован на Microsoft Excel, т.е. MS-Excel должен иметь возможность его открыть.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
// The path to the documents directory.
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
string filePath = dataDir + "Book1.html";
// Instantiate LoadOptions specified by the LoadFormat.
HtmlLoadOptions loadOptions = new HtmlLoadOptions(LoadFormat.Html);
// Create a Workbook object and opening the file from its path
Workbook wb = new Workbook(filePath, loadOptions);
// Save the MHT file
wb.Save(filePath + "output.xlsx");

Открытие файлов CSV

Файлы с разделенными запятыми (CSV) содержат записи, в которых значения разделены запятыми. Данные хранятся в виде таблицы, где каждый столбец разделен запятой и заключен в кавычки. Если значение поля содержит символ двойной кавычки, он экранируется парой символов двойной кавычки. Вы также можете использовать Microsoft Excel для экспорта данных электронных таблиц в CSV.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
// The path to the documents directory.
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
// Instantiate LoadOptions specified by the LoadFormat.
LoadOptions loadOptions4 = new LoadOptions(LoadFormat.Csv);
// Create a Workbook object and opening the file from its path
Workbook wbCSV = new Workbook(dataDir + "Book_CSV.csv", loadOptions4);
Console.WriteLine("CSV file opened successfully!");

Открытие файлов CSV и замена недопустимых символов

В Excel, при открытии файла CSV со специальными символами, символы автоматически заменяются. То же самое делает API Aspose.Cells, что демонстрируется в приведенном ниже примере кода.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
//Source directory
string sourceDir = RunExamples.Get_SourceDirectory();
var filename = sourceDir + "[20180220142533][ASPOSE_CELLS_TEST].csv";
//Load CSV file
var workbook = new Workbook(filename, new TxtLoadOptions() { Separator = ';', LoadFilter = new LoadFilter(LoadDataFilterOptions.CellData), CheckExcelRestriction = false, ConvertNumericData = false, ConvertDateTimeData = false });
Console.WriteLine(workbook.Worksheets[0].Name); // (20180220142533)(ASPOSE_CELLS_T
Console.WriteLine(workbook.Worksheets[0].Name.Length); // 31
Console.WriteLine("CSV file opened successfully!");

Использование предпочтительного разборщика

Не всегда необходимо использовать настройки разборщика по умолчанию для открытия файлов CSV. Иногда импорт файла CSV не создает ожидаемого вывода, например, формат даты не соответствует ожидаемому или обработка пустых полей происходит по-разному. Для этой цели используется TxtLoadOptions.PreferredParsers, чтобы предоставить свой собственный предпочтительный разборщик для разбора различных типов данных по требованию. Приведенный ниже образец кода демонстрирует использование предпочтительного разборщика.  

Исходный файл и выходные файлы для примера можно скачать по следующим ссылкам для тестирования этой функции.

samplePreferredParser.csv

outputsamplePreferredParser.xlsx

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
class TextParser : ICustomParser
{
public object ParseObject(string value)
{
return value;
}
public string GetFormat()
{
return "";
}
}
class DateParser : ICustomParser
{
public object ParseObject(string value)
{
DateTime myDate = DateTime.ParseExact(value, "dd/MM/yyyy", System.Globalization.CultureInfo.InvariantCulture);
return myDate;
}
public string GetFormat()
{
return "dd/MM/yyyy";
}
}
public static void Main()
{
// Initialize Text File's LoadFormat
LoadFormat oLoadFormat = LoadFormat.Csv;
// Initialize Text File's Load options
TxtLoadOptions oTxtLoadOptions = new TxtLoadOptions(oLoadFormat);
// Specify the separatot character
oTxtLoadOptions.Separator = Convert.ToChar(",");
// Specify the encoding scheme
oTxtLoadOptions.Encoding = System.Text.Encoding.UTF8;
// Set the flag to true for converting datetime data
oTxtLoadOptions.ConvertDateTimeData = true;
// Set the preferred parsers
oTxtLoadOptions.PreferredParsers = new ICustomParser[] { new TextParser(), new DateParser() };
// Initialize the workbook object by passing CSV file and text load options
Workbook oExcelWorkBook = new Aspose.Cells.Workbook(sourceDir + "samplePreferredParser.csv", oTxtLoadOptions);
// Get the first cell
Cell oCell = oExcelWorkBook.Worksheets[0].Cells["A1"];
// Display type of value
Console.WriteLine("A1: " + oCell.Type.ToString() + " - " + oCell.DisplayStringValue);
// Get the second cell
oCell = oExcelWorkBook.Worksheets[0].Cells["B1"];
// Display type of value
Console.WriteLine("B1: " + oCell.Type.ToString() + " - " + oCell.DisplayStringValue);
// Save the workbook to disc
oExcelWorkBook.Save(outputDir + "outputsamplePreferredParser.xlsx");
Console.WriteLine("OpeningCSVFilesWithPreferredParser executed successfully.\r\n");
}

Открытие текстовых файлов с пользовательским разделителем

Текстовые файлы используются для хранения данных электронных таблиц без форматирования. Файл является своего рода обычным текстовым файлом, в котором могут быть использованы некоторые настраиваемые разделители.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
// The path to the documents directory.
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
string filePath = dataDir + "Book11.csv";
// Instantiate Text File's LoadOptions
TxtLoadOptions txtLoadOptions = new TxtLoadOptions();
// Specify the separator
txtLoadOptions.Separator = Convert.ToChar(",");
// Specify the encoding type
txtLoadOptions.Encoding = System.Text.Encoding.UTF8;
// Create a Workbook object and opening the file from its path
Workbook wb = new Workbook(filePath, txtLoadOptions);
// Save file
wb.Save(dataDir+ "output.txt");

Открытие файлов с разделителями табуляции

Файл с разделителями табуляции (текстовый) содержит данные электронной таблицы, но без какого-либо форматирования. Данные расположены в строках и столбцах, как в таблицах и электронных таблицах. Фактически, файл с разделителями табуляции является особым видом обычного текстового файла с табуляцией между каждым столбцом.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
// The path to the documents directory.
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
// Opening Tab Delimited Files
// Instantiate LoadOptions specified by the LoadFormat.
LoadOptions loadOptions5 = new LoadOptions(LoadFormat.TabDelimited);
// Create a Workbook object and opening the file from its path
Workbook wbTabDelimited = new Workbook(dataDir + "Book1TabDelimited.txt", loadOptions5);
Console.WriteLine("Tab delimited file opened successfully!");

Открытие файлов со значениями, разделенными табуляцией (TSV)

Файл со значениями, разделенными табуляцией (TSV), содержит данные электронной таблицы, но без какого-либо форматирования. Это то же самое, что и файл с разделителями табуляции, где данные расположены в строках и столбцах, как в таблицах и электронных таблицах.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
//Source directory
string sourceDir = RunExamples.Get_SourceDirectory();
// Instantiate LoadOptions specified by the LoadFormat.
LoadOptions loadOptions = new LoadOptions(LoadFormat.Tsv);
// Create a Workbook object and opening the file from its path
Workbook workbook = new Workbook(sourceDir + "SampleTSVFile.tsv", loadOptions);
// Using the Sheet 1 in Workbook
Worksheet worksheet = workbook.Worksheets[0];
// Accessing a cell using its name
Cell cell = worksheet.Cells["C3"];
Console.WriteLine("Cell Name: " + cell.Name + " Value: " + cell.StringValue);

Открытие файлов SXC

StarOffice Calc подобен Microsoft Excel и поддерживает формулы, диаграммы, функции и макросы. Таблицы, созданные с использованием этого программного обеспечения, сохраняются с расширением SXC. Файл SXC также используется для файлов электронных таблиц OpenOffice.org Calc. Aspose.Cells может читать файлы SXC, как показано в следующем образце кода.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
//Source directory
string sourceDir = RunExamples.Get_SourceDirectory();
// Instantiate LoadOptions specified by the LoadFormat.
LoadOptions loadOptions = new LoadOptions(LoadFormat.Sxc);
// Create a Workbook object and opening the file from its path
Workbook workbook = new Workbook(sourceDir + "SampleSXC.sxc", loadOptions);
// Using the Sheet 1 in Workbook
Worksheet worksheet = workbook.Worksheets[0];
// Accessing a cell using its name
Cell cell = worksheet.Cells["C3"];
Console.WriteLine("Cell Name: " + cell.Name + " Value: " + cell.StringValue);

Открытие файлов FODS

FODS-файл - это электронная таблица, сохраненная в формате OpenDocument XML без какого-либо сжатия. Aspose.Cells может читать файлы FODS, как показано в следующем образце кода.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
//Source directory
string sourceDir = RunExamples.Get_SourceDirectory();
// Instantiate LoadOptions specified by the LoadFormat.
LoadOptions loadOptions = new LoadOptions(LoadFormat.Fods);
// Create a Workbook object and opening the file from its path
Workbook workbook = new Workbook(sourceDir + "SampleFods.fods", loadOptions);
Console.WriteLine("FODS file opened successfully!");