This tutorial shows how to convert an XLSX file to CSV in a C# .NET 6 Console application using LEADTOOLS SDK.
Overview | |
---|---|
Summary | This tutorial shows how to convert an XLSX file to CSV using LEADTOOLS SDK in a C# .NET 6 application. |
Completion Time | 20 minutes |
Project | Download tutorial project (1 KB) |
Platform | C# .NET 6 Console Application |
IDE | Visual Studio 2022 |
Runtime Target | .NET 6 or Higher |
Runtime License | Download LEADTOOLS |
Get familiar with the basic steps of creating a project by reviewing the Add References and Set a License tutorial, before working on this tutorial.
Start with a copy of the project created in the Add References and Set a License tutorial. If you do not have that project, follow the steps in that tutorial to create it.
The references needed depend upon the purpose of the project. References can be added by one or the other of the following two methods (but not both).
If using NuGet references, this tutorial requires the following NuGet package:
Leadtools.Document.SDK
If using local DLL references, the following DLLs are needed.
The DLLs are located at <INSTALL_DIR>\LEADTOOLS23\Bin\net
:
Leadtools.dll
Leadtools.Core.dll
Leadtools.Document.LEADOffice.dll
For a complete list of which DLL files are required for your application, refer to Files to be Included With Your Application.
The License unlocks the features needed for the project. It must be set before any toolkit function is called. For details, including tutorials for different platforms, refer to Setting a Runtime License.
There are two types of runtime licenses:
Inside the Solution Explorer, open Program.cs
. Add the following to the using
block at the top of the Program.cs
file:
using Leadtools;
using Leadtools.Document.LEADOffice.Sheet;
Add the method ConvertToCSV(string inFile, string outFile)
and call it inside of the Main method under the InitLEAD
method. This method will be used to parse the existing XLSX spreadsheet and generate a CSV file using the information.
static void ConvertToCSV(string inFile, string outFile)
{
// Load workbook
LEADWorkbook workbook = LEADWorkbookFactory.LoadFromFile(inFile, new LoadWorkbookOptions());
// Get first sheet
Sheet sheet = workbook.GetSheetAt(0);
// Set a variable for the length of the header row
int lastHeaderCol = sheet.GetRowAt(0).LastCellIndex;
StringBuilder sb = new();
// Parse each row to the length of the header row
for (int i = 0; i < sheet.LastRowIndex + 1; i++)
{
Row row = sheet.GetRowAt(i);
for (int j = 0; j < lastHeaderCol; j++)
{
var cell = row.GetCellAt(j);
string value = "";
if (cell != null)
{
// Check for type of cell and pull data from it to add to the string builder
switch (cell.CellType)
{
case CellType.Bool:
value = cell.BoolCellValue.ToString();
break;
case CellType.String:
value = cell.StringCellValue;
break;
case CellType.Formula:
value = "=" + cell.CellFormula;
break;
case CellType.Numeric:
value = cell.NumericCellValue.ToString();
break;
default:
value = "";
break;
}
}
sb.Append($"{value}{(j != row.LastCellIndex - 1 ? "," : "")}");
}
sb.Append('\n');
}
// Write the string builder to the output file
Console.WriteLine( sb.ToString() );
File.WriteAllText(outFile, sb.ToString());
}
Note
Download a sample file to use in this tutorial.
Add the following code to the main method below the InitLEAD()
call in order to convert the desired file into CSV.
static void Main(string[] args)
{
InitLEAD();
string inFile = @"CHANGE PATH TO LOCATION OF SAMPLE FILE";
string outFile = @"CHANGE PATH TO DESIRED OUTPUT LOCATION";
ConvertToCSV(inFile, outFile);
}
Run the project by pressing F5, or by selecting Debug -> Start Debugging.
If the steps were followed correctly, the application loads the XLSX file, parses its data, and saves the data as a CSV file to the specified location. The original Excel Spreadsheet can be seen below.
Example output from the console can be seen below.
This tutorial showed how to create a new LEADTOOLS Workbook based off of a 2D array with text, numbers, and formulas, then save it as a CSV file.