打开不同格式的文件

打开具有不同格式的文件

Aspose.Cells 允许开发人员打开具有不同格式的电子表格文件,如电子表格 ML,逗号分隔值(CSV),表格分隔或制表符分隔值(TSV),ODS 文件。 要打开这些文件,开发人员可以使用与打开不同 Microsoft Excel 版本文件相同的方法。

打开电子表格 ML 文件

电子表格 ML 文件是电子表格的 XML 表示,包括有关其所有信息的格式、公式等等。 自 Microsoft Excel XP 以来,已向 Microsoft Excel 添加了导出到电子表格 ML 文件的 XML 导出选项。

Aspose::Cells::Startup();
// The path to the documents directory.
U16String dataDir(u"");
// Opening XML Files
LoadOptions loadOptions(LoadFormat::Xml);
// Create a Workbook object and opening the file from its path
Workbook workbook(dataDir + u"Input.xml", loadOptions);
// Show following message on console
std::cout << "XML file opened successfully!" <<std::endl;
Aspose::Cells::Cleanup();

打开 HTML 文件

Aspose.Cells 允许您将 HTML 文件打开到工作簿对象中。 HTML 文件应该是面向 Microsoft Excel 的,即 MS-Excel 应该能够打开它。

Aspose::Cells::Startup();
// The path to the documents directory.
U16String dataDir(u"");
// Opening HTML Files
LoadOptions loadOptions(LoadFormat::Html);
// Create a Workbook object and opening the file from its path
Workbook workbook(dataDir + u"Input.html", loadOptions);
// Show following message on console
std::cout << "HTML file opened successfully!" << std::endl;
Aspose::Cells::Cleanup();

打开 CSV 文件

逗号分隔值(CSV)文件包含记录,其中值由逗号分隔。 数据存储为表格,其中每列由逗号字符分隔并由双引号字符引用。 如果字段值包含双引号字符,则用一对双引号字符进行转义。 您还可以使用 Microsoft Excel 将电子表格数据导出到 CSV。

Aspose::Cells::Startup();
// The path to the documents directory.
U16String dataDir = u"";
// Instantiate LoadOptions specified by the LoadFormat.
LoadOptions loadOptions4(LoadFormat::Csv);
// Create a Workbook object and opening the file from its path
Workbook wbCSV(dataDir + u"Book_CSV.csv", loadOptions4);
std::cout << "CSV file opened successfully!" << std::endl;
Aspose::Cells::Cleanup();

打开 CSV 文件并替换无效字符

在 Excel 中,打开具有特殊字符的 CSV 文件时,字符会自动替换。 Aspose.Cells API 也采用相同的方法,示例如下所示的代码示例。

Aspose::Cells::Startup();
//Source directory
U16String sourceDir = u"";
U16String filename = sourceDir + u"InvalidCharacters.csv";
//Load CSV file
LoadFilter filter(LoadDataFilterOptions::CellData);
TxtLoadOptions csvOpt;
csvOpt.SetSeparator(';');
csvOpt.SetLoadFilter(&filter);
csvOpt.SetCheckExcelRestriction(false);
csvOpt.SetConvertNumericData(false);
csvOpt.SetConvertDateTimeData(false);
Workbook workbook(filename, csvOpt);
std::cout << "CSV file opened successfully!" << std::endl;
// Save for check
workbook.Save(u"Output.xlsx");
Aspose::Cells::Cleanup();

可以从以下链接下载样本源文件以测试此功能。

InvalidCharacters.csv

使用自定义分隔符打开文本文件

文本文件用于在不格式化的情况下保存电子表格数据。 文件是一种可以具有一些自定义分隔符的纯文本文件。

Aspose::Cells::Startup();
// The path to the documents directory.
U16String dataDir = u"";
U16String filePath = dataDir + u"CustomSeparator.txt";
// Instantiate Text File's LoadOptions
TxtLoadOptions txtLoadOptions;
// Specify the separator
txtLoadOptions.SetSeparator(u',');
// Specify the encoding type
txtLoadOptions.SetEncoding(EncodingType::UTF8);
// Create a Workbook object and opening the file from its path
Workbook wb(filePath, txtLoadOptions);
// Save file
wb.Save(dataDir + u"output.xlsx");
Aspose::Cells::Cleanup();

可以从以下链接下载样本源文件以测试此功能。

CustomSeparator.txt

打开制表符分隔文件

制表符分隔(文本)文件包含电子表格数据,但没有任何格式。数据按行和列排列,就像在表格和电子表格中一样。基本上,制表符分隔文件是一种带有每个列之间制表符的特殊类型的纯文本文件。

Aspose::Cells::Startup();
// The path to the documents directory.
U16String dataDir = u"";
// Opening Tab Delimited Files
// Instantiate LoadOptions specified by the LoadFormat.
LoadOptions loadOptions5(LoadFormat::TabDelimited);
// Create a Workbook object and opening the file from its path
Workbook wbTabDelimited(dataDir + u"Book1TabDelimited.txt", loadOptions5);
// Show following message on console
std::cout << "TabDelimited file opened successfully!" << std::endl;
Aspose::Cells::Cleanup();

打开制表符分隔数值(TSV)文件

制表符分隔数值(TSV)文件包含电子表格数据,但没有任何格式。它与制表符分隔文件相同,其中数据按行和列排列,就像在表格和电子表格中一样。

Aspose::Cells::Startup();
//Source directory
U16String sourceDir = u"";
// Instantiate LoadOptions specified by the LoadFormat.
LoadOptions loadOptions(LoadFormat::Tsv);
// Create a Workbook object and opening the file from its path
Workbook workbook(sourceDir + u"SampleTSVFile.tsv", loadOptions);
// Using the Sheet 1 in Workbook
Worksheet worksheet = workbook.GetWorksheets().Get(0);
// Accessing a cell using its name
Cell cell = worksheet.GetCells().Get(u"C3");
std::cout << "Cell Name: " << cell.GetName().ToUtf8() << " Value: " << cell.GetStringValue().ToUtf8() << std::endl;
Aspose::Cells::Cleanup();

打开SXC文件

StarOffice Calc类似于Microsoft Excel,并支持公式、图表、函数和宏。使用此软件创建的电子表格以SXC扩展名保存。SXC文件也用于OpenOffice.org Calc电子表格文件。Aspose.Cells可以读取SXC文件,如以下代码示例所示。

Aspose::Cells::Startup();
//Source directory
U16String sourceDir = u"";
// Instantiate LoadOptions specified by the LoadFormat.
LoadOptions loadOptions(LoadFormat::Sxc);
// Create a Workbook object and opening the file from its path
Workbook workbook(sourceDir + u"SampleSXC.sxc", loadOptions);
// Using the Sheet 1 in Workbook
Worksheet worksheet = workbook.GetWorksheets().Get(0);
// Accessing a cell using its name
Cell cell = worksheet.GetCells().Get(u"C3");
std::cout << "Cell Name: " << cell.GetName().ToUtf8() << " Value: " << cell.GetStringValue().ToUtf8() << std::endl;
Aspose::Cells::Cleanup();

打开FODS文件

FODS文件是以开放文档XML格式保存的电子表格文件,没有任何压缩。Aspose.Cells可以读取FODS文件,如以下代码示例所示。

Aspose::Cells::Startup();
//Source directory
U16String sourceDir = u"";
// Instantiate LoadOptions specified by the LoadFormat.
LoadOptions loadOptions(LoadFormat::Fods);
// Create a Workbook object and opening the file from its path
Workbook workbook(sourceDir + "SampleFods.fods", loadOptions);
// Show following message on console
std::cout << "FODS file opened successfully!" << std::endl;
Aspose::Cells::Cleanup();