Different Ways to Save Files with C++
Different Ways to Save Files
Aspose.Cells provides the Workbook which represents a Microsoft Excel file and provides the properties and methods necessary to work with Excel files. The Workbook class provides the Save method used to save Excel files. The Save method has many overloads that are used to save files in different ways.
The file format that the file is saved to is decided by the SaveFormat enumeration
File Format Types | Description |
---|---|
CSV | Represents a CSV file |
Excel97To2003 | Represents an Excel 97 - 2003 file |
Xlsx | Represents an Excel 2007 XLSX file |
Xlsm | Represents an Excel 2007 XLSM file |
Xltx | Represents an Excel 2007 template XLTX file |
Xltm | Represents an Excel 2007 macro-enabled XLTM file |
Xlsb | Represents an Excel 2007 binary XLSB file |
SpreadsheetML | Represents a Spreadsheet XML file |
TSV | Represents a Tab-separated values file |
TabDelimited | Represents a Tab Delimited text file |
ODS | Represents an ODS file |
Html | Represents HTML file(s) |
MHtml | Represents an MHTML file(s) |
Represents a PDF file | |
XPS | Represents an XPS document |
TIFF | Represents Tagged Image File Format (TIFF) |
How to Save File to Different Formats
To save files to a storage location, specify the file name (complete with storage path) and the desired file format (from the SaveFormat enumeration) when calling the Workbook object’s Save method.
#include <iostream>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
int main()
{
Aspose::Cells::Startup();
// Source directory path
U16String srcDir(u"..\\Data\\01_SourceDirectory\\");
// Output directory path
U16String outDir(u"..\\Data\\02_OutputDirectory\\");
// Path of input excel file
U16String filePath = srcDir + u"Book1.xls";
// Load your source workbook
Workbook workbook(filePath);
// Save in Excel 97 to 2003 format
workbook.Save(outDir + u".output.xls");
// OR
XlsSaveOptions xlsSaveOptions;
workbook.Save(outDir + u".output.xls", xlsSaveOptions);
// Save in Excel2007 xlsx format
workbook.Save(outDir + u".output.xlsx", SaveFormat::Xlsx);
// Save in Excel2007 xlsb format
workbook.Save(outDir + u".output.xlsb", SaveFormat::Xlsb);
// Save in ODS format
workbook.Save(outDir + u".output.ods", SaveFormat::Ods);
// Save in Pdf format
workbook.Save(outDir + u".output.pdf", SaveFormat::Pdf);
// Save in Html format
workbook.Save(outDir + u".output.html", SaveFormat::Html);
// Save in SpreadsheetML format
workbook.Save(outDir + u".output.xml", SaveFormat::SpreadsheetML);
std::cout << "Files saved successfully!" << std::endl;
Aspose::Cells::Cleanup();
}
How to Save Workbook to Pdf
Portable Document Format (PDF) is a type of document created by Adobe back in 1990s. The purpose of this file format was to introduce a standard for representation of documents and other reference material in a format that is independent of application software, hardware as well as Operating System. The PDF file format has full capability to contain information like text, images, hyperlinks, form-fields, rich media, digital signatures, attachments, metadata, Geospatial features and 3D objects in it that can become as part of source document.
The following codes shows how to save workboook as pdf file With Aspose.Cells:
#include <iostream>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
int main()
{
Aspose::Cells::Startup();
// Instantiate the Workbook object
Workbook workbook;
// Set value to Cell
workbook.GetWorksheets().Get(0).GetCells().Get(u"A1").PutValue(u"Hello World!");
// Save the workbook to PDF
workbook.Save(u"pdf1.pdf");
// Save as Pdf format compatible with PDFA-1a
PdfSaveOptions saveOptions;
saveOptions.SetCompliance(PdfCompliance::PdfA1a);
workbook.Save(u"pdfa1a.pdf", saveOptions);
Aspose::Cells::Cleanup();
return 0;
}
How to Save Workbook to Text or CSV Format
Sometimes, you want to convert or save a workbook with multiple worksheets into text format. For text formats (for example TXT, TabDelim, CSV, etc.), by default both Microsoft Excel and Aspose.Cells save the contents of the active worksheet only.
The following code example explains how to save an entire workbook into text format. Load the source workbook which could be any Microsoft Excel or OpenOffice spreadsheet file (so XLS, XLSX, XLSM, XLSB, ODS and so on) with any number of worksheets.
When the code is executed, it converts the data of all sheets in the workbook to the TXT format.
You can modify the same example to save your file to CSV. By default, TxtSaveOptions.GetSeparator() is comma, so do not specify a separator if saving to CSV format. Please note: If you are using the evaluation version and even if the TxtSaveOptions.GetExportAllSheets() property is set to true, the program will still only export one worksheet.
#include <iostream>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
int main()
{
Aspose::Cells::Startup();
// Source directory path
U16String srcDir(u"..\\Data\\01_SourceDirectory\\");
// Output directory path
U16String outDir(u"..\\Data\\02_OutputDirectory\\");
// Path of input excel file
U16String inputFilePath = srcDir + u"book1.xls";
// Path of output text file
U16String outputFilePath = outDir + u"out.txt";
// Load your source workbook
Workbook workbook(inputFilePath);
// Text save options. You can use any type of separator
TxtSaveOptions opts;
opts.SetSeparator(u'\t');
opts.SetExportAllSheets(true);
// Save entire workbook data into file
workbook.Save(outputFilePath, opts);
std::cout << "Workbook data saved to text file successfully!" << std::endl;
Aspose::Cells::Cleanup();
}
How to Save File to Text Files with Custom Separator
Text files contain spreadsheet data without formatting. The file is a kind of plain text file that can have some customized delimiters between its data.
#include <iostream>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
int main()
{
Aspose::Cells::Startup();
// Source directory path
U16String srcDir(u"..\\Data\\01_SourceDirectory\\");
// Path of input excel file
U16String filePath = srcDir + u"Book1.xlsx";
// Create a Workbook object and open the file from its path
Workbook wb(filePath);
// Instantiate Text File's Save Options
TxtSaveOptions options;
// Specify the separator
options.SetSeparator(u';');
// Save the file with the options
wb.Save(srcDir + u"output.csv", options);
std::cout << "File saved successfully!" << std::endl;
Aspose::Cells::Cleanup();
}
How to Save File to a Stream
To save files to a stream, create a MemoryStream or FileStream object and save the file to that stream object by calling the Workbook object’s Save method. Specify the desired file format using the SaveFormat enumeration when calling the Save method.
#include <iostream>
#include <fstream>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
int main()
{
Startup();
U16String srcDir(u"..\\Data\\01_SourceDirectory\\");
U16String outDir(u"..\\Data\\02_OutputDirectory\\");
U16String inputFilePath = srcDir + u"Book1.xlsx";
Workbook workbook(inputFilePath);
// Save workbook to memory stream with explicit FileFormatType
Vector<uint8_t> data = workbook.SaveToStream();
std::cout << "File size: " << data.GetLength() << std::endl;
Cleanup();
return 0;
}
How to Save Excel File to Html and Mht files
Aspose.Cells can simply save an Excel file ,JSON, CSV or other files which could be loaded by Aspose.Cells as .html and .mht files.
#include <iostream>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
int main()
{
Aspose::Cells::Startup();
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-C
// Load your source workbook
U16String inputFilePath(u"Book1.xlsx");
Workbook workbook(inputFilePath);
// Save file to MHTML format
U16String outputFilePath(u"out.mht");
workbook.Save(outputFilePath);
std::cout << "File saved successfully to MHTML format!" << std::endl;
Aspose::Cells::Cleanup();
}
How to Save Excel File to OpenOffice (ODS, SXC, FODS, OTS)
We can saving the files as open offce format : ODS, SXC, FODS, OTS etc.
#include <iostream>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
int main()
{
Aspose::Cells::Startup();
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-C
// Load your source workbook
Workbook workbook(u"book1.xlsx");
// Save as ods file
workbook.Save(u"Out.ods");
// Save as sxc file
workbook.Save(u"Out.sxc");
// Save as fods file
workbook.Save(u"Out.fods");
Aspose::Cells::Cleanup();
return 0;
}
How to Save Excel File to JSON or XML
JSON (JavaScript Object Notation) is an open standard file format for sharing data that uses human-readable text to store and transmit data. JSON files are stored with the .json extension. JSON requires less formatting and is a good alternative for XML. JSON is derived from JavaScript but is a language-independent data format. The generation and parsing of JSON is supported by many modern programming languages. application/json is the media type used for JSON.
Aspose.Cells supports saving files to JSON or XML.
#include <iostream>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
int main()
{
Aspose::Cells::Startup();
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-C
// Source directory path
U16String srcDir(u"..\\Data\\01_SourceDirectory\\");
// Output directory path
U16String outDir(u"..\\Data\\02_OutputDirectory\\");
// Path of input excel file
U16String inputFilePath = srcDir + u"Book1.xlsx";
// Path of output json file
U16String outputFilePath = outDir + u"book1.json";
// Create workbook
Workbook workbook(inputFilePath);
// Save the workbook as JSON
workbook.Save(outputFilePath, SaveFormat::Json);
std::cout << "Workbook converted to JSON successfully!" << std::endl;
Aspose::Cells::Cleanup();
}