Click here to Skip to main content
15,312,319 members
Articles / Programming Languages / C#
Posted 6 Jul 2007


93 bookmarked

Write Data to Excel using C#

Rate me:
Please Sign up or sign in to vote.
3.86/5 (23 votes)
6 Jul 2007CPOL2 min read
Describes how to write data to an Excel sheet using C#


This article will help to write data to Excel using C# without playing with Excel.Application. With the help of the ExcelFileWriter class, it is very easy to write data to an Excel sheet.


Those who are lazy to read the help of Excel.Application in order to write to an Excel sheet can make use of this article and code base.

Using the Code

Firstly, add the reference "Microsoft Excel 11.0 Object Library" by right clicking the References from Visual Studio .NET and select the COM tab. If Excel 11.0 is not there, select Excel 5.0.

The ExcelFileWriter class is an abstract class.

In order to write, for example, a set of int values to an Excel sheet, the steps to follow are listed below:

  1. Add ExcelFileWriter.cs into your project.

  2. Let's assume you want to add numbers from 1 to 20 which are already populated in the List. You can have any data type inside the list.

  3. Create an object of ExcelFileWriter class. Since my collection class, List, is of type int, I create an object of ExcelFileWriter using int. You can use whatever data type you want as ExcelFileWriter is of generic type.

  4. Call the API, WriteDataToExcel and pass the name of the Excel file, the data, the starting column in Excel and the ending column.

    List<int> myList = new List<int>();
    for (int i = 0; i < 20; i++)
    ExcelFileWriter<int> myExcel = new ExcelWrite();
  5. Create a class which derives from ExcelFileWriter and make an object[] as a member variable.

  6. Override the functions and properties.

    1. Override "Headers" -> return the name of the Column Headers in the Excel sheet:

      public override object[] Headers
      object[] headerName = { "Header1", "Header2", "Header3", "Header4" };
      return headerName;
    2. Override RowCount and ColumnCount.

    3. Override FillRowData -> fill the exceldata object:

      public override void FillRowData(List<int> list)
      myRowCnt = list.Count;
      myExcelData = new object[RowCount + 1, 4];
      for (int row = 1; row <= myRowCnt; row++)
      for (int col = 0; col < 4; col++)
      myExcelData[row, col] = list[row - 1];
    4. Override ExcelData:

      public override object[,] ExcelData
      return myExcelData;

That's it. Build it and Run and you can see that the data is written to the Excel sheet. The important part is you didn't have the headache of understanding the Excel object.

Hope it helps.


  • 6th July, 2007: Initial post


This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


About the Author

Web Developer
Germany Germany
No Biography provided

Comments and Discussions

QuestionThank a lot Pin
tinychi5-Jan-15 22:25
Membertinychi5-Jan-15 22:25 
QuestionThank you Pin
khairosh25-Nov-13 21:32
Memberkhairosh25-Nov-13 21:32 
QuestionWrite Data to Excel using C# Pin
Jaya0411-Sep-12 18:01
MemberJaya0411-Sep-12 18:01 
Questionhelp plz Pin
persian264521-Apr-12 22:02
Memberpersian264521-Apr-12 22:02 
GeneralMy vote of 4 Pin
coolqer31-Oct-11 4:25
Membercoolqer31-Oct-11 4:25 
SuggestionSample on consuming the ExcelFileWriter Class Pin
irshadmohideen22-Aug-11 11:15
Memberirshadmohideen22-Aug-11 11:15 
GeneralPopulating with a List of Entity type [modified] Pin
gopalganeriwal12-Jul-10 0:50
Membergopalganeriwal12-Jul-10 0:50 
GeneralExcel & Force save Pin
Member 27794098-Jul-09 18:29
MemberMember 27794098-Jul-09 18:29 
GeneralNice job Pin
Puhfista2-Dec-08 9:54
MemberPuhfista2-Dec-08 9:54 
QuestionHow to export data from gridview to pdf? Pin
AtiqSuman25-Jun-08 18:12
MemberAtiqSuman25-Jun-08 18:12 
AnswerRe: How to export data from gridview to pdf? Pin
Matthew Turner20-Aug-08 5:16
MemberMatthew Turner20-Aug-08 5:16 
GeneralAlternative ways Pin
FilipKrnjic12-Jun-08 22:24
MemberFilipKrnjic12-Jun-08 22:24 
QuestionHow to generate output from certain data in excel file in c# Pin
roslanabdul29-May-08 17:39
Memberroslanabdul29-May-08 17:39 
GeneralNamespace Excel is not recognized Pin
AtiqSuman3-Nov-07 23:10
MemberAtiqSuman3-Nov-07 23:10 
GeneralRe: Namespace Excel is not recognized Pin
Andrew Greatorex25-Jun-08 4:14
MemberAndrew Greatorex25-Jun-08 4:14 
QuestionWhat to do when number of rows are greater than 65000? Pin
imranniaz27-Aug-07 1:58
Memberimranniaz27-Aug-07 1:58 
QuestionHow to add ExcelFileWriter.cs in my project Pin
flamingo27-Aug-07 4:39
Memberflamingo27-Aug-07 4:39 
AnswerRe: How to add ExcelFileWriter.cs in my project Pin
monalijaju1-Oct-07 2:15
Membermonalijaju1-Oct-07 2:15 
General.csproj file is missing Pin
kbsaravana19-Jul-07 3:04
Memberkbsaravana19-Jul-07 3:04 
Generaldoesnt work on my machine Pin
fguihen19-Jul-07 2:23
Memberfguihen19-Jul-07 2:23 
GeneralFailure to cleanup unmanaged resoruces Pin
Jay L.10-Jul-07 1:39
MemberJay L.10-Jul-07 1:39 
GeneralRe: Failure to cleanup unmanaged resoruces Pin
shinilkp10-Jul-07 7:42
Membershinilkp10-Jul-07 7:42 
GeneralRe: Failure to cleanup unmanaged resoruces Pin
Jay L.10-Jul-07 8:23
MemberJay L.10-Jul-07 8:23 
QuestionFormula? Pin
eraseunavez9-Jul-07 20:37
Membereraseunavez9-Jul-07 20:37 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.