Different Ways to Open Files
How to Open an Excel File via a Path
Developers can open a Microsoft Excel file using its file path on the local computer by specifying it in the Workbook class constructor. Simply pass the path in the constructor as a string. Aspose.Cells will automatically detect the file format type.
// 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 through Path | |
// Creating a Workbook object and opening an Excel file using its file path | |
Workbook workbook1 = new Workbook(dataDir + "Book1.xlsx"); | |
Console.WriteLine("Workbook opened using path successfully!"); |
How to Open an Excel File via a Stream
It is also simple to open an Excel file as a stream. To do so, use an overloaded version of the constructor that takes the Stream object that contains the file.
// 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 through Stream | |
// Create a Stream object | |
FileStream fstream = new FileStream(dataDir + "Book2.xls", FileMode.Open); | |
// Creating a Workbook object, open the file from a Stream object | |
// That contains the content of file and it should support seeking | |
Workbook workbook2 = new Workbook(fstream); | |
Console.WriteLine("Workbook opened using stream successfully!"); | |
fstream.Close(); |
How to Open a File with Data only
To open a file with data only, use the LoadOptions and LoadFilter classes to set the related attribute and options of the classes for the template file to be loaded.
// 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); | |
// Load only specific sheets with data and formulas | |
// Other objects, items etc. would be discarded | |
// Instantiate LoadOptions specified by the LoadFormat | |
LoadOptions loadOptions = new LoadOptions(LoadFormat.Xlsx); | |
// Set LoadFilter property to load only data & cell formatting | |
loadOptions.LoadFilter = new LoadFilter(LoadDataFilterOptions.CellData); | |
// Create a Workbook object and opening the file from its path | |
Workbook book = new Workbook(dataDir + "Book1.xlsx", loadOptions); | |
Console.WriteLine("File data imported successfully!"); |
How to Load Visible Sheets only
While loading a Workbook sometimes you may only need data in visible worksheets in a workbook. Aspose.Cells allows you to skip data in invisible worksheets while loading a workbook. To do this, create a custom function that inherits the LoadFilter class and pass its instance to LoadOptions.LoadFilter property.
// 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 sampleFile = "output.xlsx"; | |
string samplePath = dataDir + sampleFile; | |
// Create a sample workbook | |
// and put some data in first cell of all 3 sheets | |
Workbook createWorkbook = new Workbook(); | |
createWorkbook.Worksheets["Sheet1"].Cells["A1"].Value = "Aspose"; | |
createWorkbook.Worksheets.Add("Sheet2").Cells["A1"].Value = "Aspose"; | |
createWorkbook.Worksheets.Add("Sheet3").Cells["A1"].Value = "Aspose"; | |
createWorkbook.Worksheets["Sheet3"].IsVisible = false; | |
createWorkbook.Save(samplePath); | |
// Load the sample workbook | |
LoadOptions loadOptions = new LoadOptions(); | |
loadOptions.LoadFilter = new CustomLoad(); | |
Workbook loadWorkbook = new Workbook(samplePath, loadOptions); | |
Console.WriteLine("Sheet1: A1: {0}", loadWorkbook.Worksheets["Sheet1"].Cells["A1"].Value); | |
Console.WriteLine("Sheet1: A2: {0}", loadWorkbook.Worksheets["Sheet2"].Cells["A1"].Value); | |
Console.WriteLine("Sheet1: A3: {0}", loadWorkbook.Worksheets["Sheet3"].Cells["A1"].Value); |
Here is the implementation of the CustomnLoad class referenced in the above snippet.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET | |
class CustomLoad : LoadFilter | |
{ | |
public override void StartSheet(Worksheet sheet) | |
{ | |
if (sheet.IsVisible) | |
{ | |
// Load everything from visible worksheet | |
this.LoadDataFilterOptions = LoadDataFilterOptions.All; | |
} | |
else | |
{ | |
// Load nothing | |
this.LoadDataFilterOptions = LoadDataFilterOptions.Structure; | |
} | |
} | |
} |