Create Excel file on Linux or macOS

GemBox.Spreadsheet provides support for .NET Standard 2.0, a cross-platform specification of .NET APIs, which is why it can be used on non-Windows platforms like Linux and macOS. The .NET Standard version of GemBox.Spreadsheet has full functionality of .NET Framework version, but with few rendering limitations (unsupported features):

  • Printing workbooks.
  • Saving workbooks to PDF, XPS and image formats.
  • Calling Row and Column AutoFit methods.

The following example shows how you can create an Excel workbook using GemBox.Spreadsheet on Linux (Ubuntu).

Generated Excel workbook from .NET Core application running on Linux (Ubuntu)
Screenshot of Excel file created with .NET Core on Linux


After installing the requirements listed above you can follow these steps that show how you can easily use a Visual Studio Code (VS Code) to create a simple Console project and a C# code that generates a XLSX file.

1. Open a project folder

  • Open VS Code.
  • Click "Open Folder" on the EXPLORER panel.
  • Select the folder you want your console project to be in, for instance a folder named GemBoxExample.
Selecting the folder you want your console project to be in
Screenshot of Visual Studio Code folder selection

2. Create a new console project

  • Open Integrated Terminal in VS Code by clicking "View" > "Terminal" or using CTRL + ` shortcut.
  • In the terminal window execute following command: dotnet new console
  • This command will create a code file (Program.cs) and a project file (GemBoxExample.csproj) inside the opened folder.
Creating a C# console project
Screenshot of Visual Studio Code new console command

3. Edit project files

  • Add a reference to GemBox.Spreadsheet in GemBoxExample.csproj file:
      <PackageReference Include="GemBox.Spreadsheet" Version="*" />
      <PackageReference Include="System.Security.Permissions" Version="*" />
  • Edit C# code in Program.cs file:
    using GemBox.Spreadsheet;
    class Program
        static void Main()
            // If using Professional version, put your serial key below.
            var workbook = new ExcelFile();
            var worksheet = workbook.Worksheets.Add("Hello World");
            worksheet.Cells[0, 0].Value = "English:";
            worksheet.Cells[0, 1].Value = "Hello";
            worksheet.Cells[1, 0].Value = "Russian:";
            // Using UNICODE string.
            worksheet.Cells[1, 1].Value = new string(new char[] { '\u0417', '\u0434', '\u0440', '\u0430', '\u0432', '\u0441', '\u0442', '\u0432', '\u0443', '\u0439', '\u0442', '\u0435' });
            worksheet.Cells[2, 0].Value = "Chinese:";
            // Using UNICODE string.
            worksheet.Cells[2, 1].Value = new string(new char[] { '\u4f60', '\u597d' });
            worksheet.Cells[4, 0].Value = "In order to see Russian and Chinese characters you need to have appropriate fonts on your PC.";
            worksheet.Cells.GetSubrangeAbsolute(4, 0, 4, 7).Merged = true;

4. Run the console project

  • In the terminal window execute following command: dotnet run
  • This command will run your Console application and create an Excel workbook (Output.xlsx) that you open in any Excel application.
Running a C# console project
Screenshot of Visual Studio Code run command

Want more?

Next example GitHub

Check the next example or select an example from the menu. You can also download our examples from the GitHub.

Like it?

Download Buy

If you want to try the GemBox.Spreadsheet yourself, you can download the free version. It delivers the same performance and set of features as the professional version, but with some operations limited. To remove the limitation, you need to purchase a license.