दिलचस्प पोस्ट
सेट कैसे करेंएक टुकड़ा में सामग्री दृश्य? <div> में <tr>: क्या यह सही है? मैं सी में एक समय अंतराल कैसे मापूं? dropdownlist MVC3 रेज़र में चयनित मान सेट करें Solr का उपयोग कर अलग फ़ील्ड मानों का चयन कैसे करें? "दिए गए पथ का प्रारूप समर्थित नहीं है।" ए 4 पेपर साइज पेज (एस) में एक HTML पेज कैसे बना सकता है? NetBeans में निष्पादन योग्य जार का निर्माण सी # क्रमबद्ध और क्रम तुलना करें कैसे कॉम्बो बॉक्स चयन के आधार पर UI को बदलने के लिए स्वाभाविक जावास्क्रिप्ट: <script> शीर्ष पर या HTML कोड के नीचे? डब्लूसीएफ सेवा को कैसे कॉल करें एसिंक्रोनस से Enum के बीच अंतर और वक्तव्य निर्धारित करें PHP में स्क्रिप्ट निष्पादन समय को ट्रैक करना मैक ओएसएक्स 10.9 पर टर्मिनल में काम करने के लिए उपयुक्त क्यों नहीं है?

Excel फ़ाइल में डेटाटाइल निर्यात करें

मेरे पास 30+ कॉलम और 6500+ पंक्तियों के साथ एक डाटाटेबल है.मुझे संपूर्ण डेटाटाले मूल्यों को एक एक्सेल फाइल में डंप करने की आवश्यकता है.किसी को भी सी # कोड में मदद कर सकते हैं। मुझे सेल में होने के लिए प्रत्येक कॉलम मूल्य की आवश्यकता है। सटीक होना, मुझे एक्सेल फाइल में डेटाटाइल की सटीक दिखने वाली प्रति की आवश्यकता है। कृपया मदद करें।

धन्यवाद, वोक्स

Solutions Collecting From Web of "Excel फ़ाइल में डेटाटाइल निर्यात करें"

इस कोड का उपयोग करें …

dt = city.GetAllCity();//your datatable string attachment = "attachment; filename=city.xls"; Response.ClearContent(); Response.AddHeader("content-disposition", attachment); Response.ContentType = "application/vnd.ms-excel"; string tab = ""; foreach (DataColumn dc in dt.Columns) { Response.Write(tab + dc.ColumnName); tab = "\t"; } Response.Write("\n"); int i; foreach (DataRow dr in dt.Rows) { tab = ""; for (i = 0; i < dt.Columns.Count; i++) { Response.Write(tab + dr[i].ToString()); tab = "\t"; } Response.Write("\n"); } Response.End(); 

यह स्निपेट लागू करने के लिए तेज़ हो सकता है:

 // Example data DataTable table = new DataTable(); table.Columns.AddRange(new[]{ new DataColumn("Key"), new DataColumn("Value") }); foreach (string name in Request.ServerVariables) table.Rows.Add(name, Request.ServerVariables[name]); // This actually makes your HTML output to be downloaded as .xls file Response.Clear(); Response.ClearContent(); Response.ContentType = "application/octet-stream"; Response.AddHeader("Content-Disposition", "attachment; filename=ExcelFile.xls"); // Create a dynamic control, populate and render it GridView excel = new GridView(); excel.DataSource = table; excel.DataBind(); excel.RenderControl(new HtmlTextWriter(Response.Output)); Response.Flush(); Response.End(); 

सी # कोड में उत्कृष्टता के लिए डेटासेट निर्यात करने के लिए नीचे लिंक का उपयोग किया गया है।

http://royalarun.blogspot.in/2012/01/export-datatable-to-excel-in-c-windows.html

  using System; using System.Data; using System.IO; using System.Windows.Forms; namespace ExportExcel { public partial class ExportDatatabletoExcel : Form { public ExportDatatabletoExcel() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { DataTable dt = new DataTable(); //Add Datacolumn DataColumn workCol = dt.Columns.Add("FirstName", typeof(String)); dt.Columns.Add("LastName", typeof(String)); dt.Columns.Add("Blog", typeof(String)); dt.Columns.Add("City", typeof(String)); dt.Columns.Add("Country", typeof(String)); //Add in the datarow DataRow newRow = dt.NewRow(); newRow["firstname"] = "Arun"; newRow["lastname"] = "Prakash"; newRow["Blog"] = "http://royalarun.blogspot.com/"; newRow["city"] = "Coimbatore"; newRow["country"] = "India"; dt.Rows.Add(newRow); //open file StreamWriter wr = new StreamWriter(@"D:\\Book1.xls"); try { for (int i = 0; i < dt.Columns.Count; i++) { wr.Write(dt.Columns[i].ToString().ToUpper() + "\t"); } wr.WriteLine(); //write rows to excel file for (int i = 0; i < (dt.Rows.Count); i++) { for (int j = 0; j < dt.Columns.Count; j++) { if (dt.Rows[i][j] != null) { wr.Write(Convert.ToString(dt.Rows[i][j]) + "\t"); } else { wr.Write("\t"); } } //go to next line wr.WriteLine(); } //close file wr.Close(); } catch (Exception ex) { throw ex; } } } } 

इस पद के काम में सबसे अधिक रैंक का उत्तर है, हालांकि इसकी सीएसवी फ़ाइल है। यह वास्तविक एक्सेल फ़ाइल नहीं है इसलिए, जब आप फ़ाइल खोलते हैं तो आपको चेतावनी मिलेगी

मैं वेब पर पाया सबसे अच्छा समाधान CloseXML का उपयोग कर रहा है http://closedxml.codeplex.com/ आपको एक्सएमएल को भी खोलना होगा

  dt = city.GetAllCity();//your datatable using (XLWorkbook wb = new XLWorkbook()) { wb.Worksheets.Add(dt); Response.Clear(); Response.Buffer = true; Response.Charset = ""; Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; Response.AddHeader("content-disposition", "attachment;filename=GridView.xlsx"); using (MemoryStream MyMemoryStream = new MemoryStream()) { wb.SaveAs(MyMemoryStream); MyMemoryStream.WriteTo(Response.OutputStream); Response.Flush(); Response.End(); } } 

क्रडिट: http://www.aspsnippets.com/Articles/Solution-ASPNet-GridView-Export-to-Excel-The-file-you-are-trying-to-open-is-in-a-different-format- निर्दिष्ट द्वारा-फ़ाइल-extension.aspx से-

मैं इस पृष्ठ में इसका उपयोग करता हूं। '

  public void DTToExcel(DataTable dt) { // dosya isimleri ileride aynı anda birden fazla kullanıcı aynı dosya üzerinde işlem yapmak ister düşüncesiyle guid yapıldı. string FileName = Guid.NewGuid().ToString(); FileInfo f = new FileInfo(Server.MapPath("Downloads") + string.Format("\\{0}.xlsx", FileName)); if (f.Exists) f.Delete(); // delete the file if it already exist. HttpResponse response = HttpContext.Current.Response; response.Clear(); response.ClearHeaders(); response.ClearContent(); response.Charset = Encoding.UTF8.WebName; response.AddHeader("content-disposition", "attachment; filename=" + FileName + ".xls"); response.AddHeader("Content-Type", "application/Excel"); response.ContentType = "application/vnd.xlsx"; //response.AddHeader("Content-Length", file.Length.ToString()); // create a string writer using (StringWriter sw = new StringWriter()) { using (HtmlTextWriter htw = new HtmlTextWriter(sw)) //datatable'a aldığımız sorguyu bir datagrid'e atayıp html'e çevir. { // instantiate a datagrid DataGrid dg = new DataGrid(); dg.DataSource = dt; dg.DataBind(); dg.RenderControl(htw); response.Write(sw.ToString()); dg.Dispose(); dt.Dispose(); response.End(); } } } 
  var lines = new List<string>(); string[] columnNames = dt.Columns.Cast<DataColumn>(). Select(column => column.ColumnName). ToArray(); var header = string.Join(",", columnNames); lines.Add(header); var valueLines = dt.AsEnumerable() .Select(row => string.Join(",", row.ItemArray)); lines.AddRange(valueLines); File.WriteAllLines("excel.csv", lines); 

यहां डीटी आपके डेटाटाले पास को पैरामीटर के रूप में संदर्भित करता है

जबकि एक .NET कार्यान्वयन नहीं है, तो आप पा सकते हैं कि आपके दर्शकों के आधार पर प्लग-इन TableTools अत्यधिक प्रभावी हो सकते हैं। यह फ्लैश पर निर्भर करता है, जो वास्तव में गहराई से काम करने की जरूरत के अधिकांश मामलों के लिए एक समस्या नहीं होनी चाहिए और तब टेबुलर जानकारी रिकॉर्ड करना चाहता है।

नवीनतम संस्करण क्लिपबोर्ड पर कॉपी करना, एक सीएसवी, ".एक्सएलएस" (वास्तव में केवल एक टैब-सीमांकित फ़ाइल नामित .xls), पीडीएफ में कॉपी करने, या सभी पंक्तियों के साथ एक प्रिंटर अनुकूल पृष्ठ संस्करण को प्रदर्शित करने और अन्य आपके पृष्ठ की सामग्री छिपी हुई है

मुझे यहां डेटाटैबल्स साइट पर विस्तार मिला: http://datatables.net/extras/tabletools/

डाउनलोड प्लग-इन्स (अतिरिक्त) पृष्ठ में यहां उपलब्ध है: http://datatables.net/extras/

यह माना जाता है कि डेटाटाइल्स के एक भाग के रूप में डाउनलोड किया जाता है (इसलिए "डेटाटाबेस पैकेज में शामिल एक्स्ट्रास" वाक्यांश) लेकिन मुझे इसे मैंने डाउनलोड किए गए डाउनलोड में नहीं खोजा था। शानदार काम करने लगता है!

अधिकांश उत्तर वास्तव में सीएसवी का उत्पादन कर रहे हैं, जिनके साथ मुझे हमेशा अच्छा अनुभव नहीं होता है, जब Excel में खुलता है

ऐसा करने का एक तरीका एसीई ओएलईडीबी प्रदाता के साथ भी होगा ( एक्सेल के लिए कनेक्शन स्ट्रिंग भी देखें)। बेशक आपको प्रदाता स्थापित और पंजीकृत होना होगा आपके पास ऐसा है, अगर आपके पास एक्सेल स्थापित है, लेकिन यह आपको कुछ समय के लिए तैनाती पर विचार करना होगा (जैसे वेब सर्वर पर)

सहायक क्लास कोड के नीचे आपको कुछ ExportHelper.CreateXlsFromDataTable(dataset.Tables[0], @"C:\tmp\export.xls"); को कॉल करना होगा ExportHelper.CreateXlsFromDataTable(dataset.Tables[0], @"C:\tmp\export.xls");

 public class ExportHelper { private const string ExcelOleDbConnectionStringTemplate = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=\"Excel 8.0;HDR=YES\";"; /// <summary> /// Creates the Excel file from items in DataTable and writes them to specified output file. /// </summary> public static void CreateXlsFromDataTable(DataTable dataTable, string fullFilePath) { string createTableWithHeaderScript = GenerateCreateTableCommand(dataTable); using (var conn = new OleDbConnection(String.Format(ExcelOleDbConnectionStringTemplate, fullFilePath))) { if (conn.State != ConnectionState.Open) { conn.Open(); } OleDbCommand cmd = new OleDbCommand(createTableWithHeaderScript, conn); cmd.ExecuteNonQuery(); foreach (DataRow dataExportRow in dataTable.Rows) { AddNewRow(conn, dataExportRow); } } } private static void AddNewRow(OleDbConnection conn, DataRow dataRow) { string insertCmd = GenerateInsertRowCommand(dataRow); using (OleDbCommand cmd = new OleDbCommand(insertCmd, conn)) { AddParametersWithValue(cmd, dataRow); cmd.ExecuteNonQuery(); } } /// <summary> /// Generates the insert row command. /// </summary> private static string GenerateInsertRowCommand(DataRow dataRow) { var stringBuilder = new StringBuilder(); var columns = dataRow.Table.Columns.Cast<DataColumn>().ToList(); var columnNamesCommaSeparated = string.Join(",", columns.Select(x => x.Caption)); var questionmarkCommaSeparated = string.Join(",", columns.Select(x => "?")); stringBuilder.AppendFormat("INSERT INTO [{0}] (", dataRow.Table.TableName); stringBuilder.Append(columnNamesCommaSeparated); stringBuilder.Append(") VALUES("); stringBuilder.Append(questionmarkCommaSeparated); stringBuilder.Append(")"); return stringBuilder.ToString(); } /// <summary> /// Adds the parameters with value. /// </summary> private static void AddParametersWithValue(OleDbCommand cmd, DataRow dataRow) { var paramNumber = 1; for (int i = 0; i <= dataRow.Table.Columns.Count - 1; i++) { if (!ReferenceEquals(dataRow.Table.Columns[i].DataType, typeof(int)) && !ReferenceEquals(dataRow.Table.Columns[i].DataType, typeof(decimal))) { cmd.Parameters.AddWithValue("@p" + paramNumber, dataRow[i].ToString().Replace("'", "''")); } else { object value = GetParameterValue(dataRow[i]); OleDbParameter parameter = cmd.Parameters.AddWithValue("@p" + paramNumber, value); if (value is decimal) { parameter.OleDbType = OleDbType.Currency; } } paramNumber = paramNumber + 1; } } /// <summary> /// Gets the formatted value for the OleDbParameter. /// </summary> private static object GetParameterValue(object value) { if (value is string) { return value.ToString().Replace("'", "''"); } return value; } private static string GenerateCreateTableCommand(DataTable tableDefination) { StringBuilder stringBuilder = new StringBuilder(); bool firstcol = true; stringBuilder.AppendFormat("CREATE TABLE [{0}] (", tableDefination.TableName); foreach (DataColumn tableColumn in tableDefination.Columns) { if (!firstcol) { stringBuilder.Append(", "); } firstcol = false; string columnDataType = "CHAR(255)"; switch (tableColumn.DataType.Name) { case "String": columnDataType = "CHAR(255)"; break; case "Int32": columnDataType = "INTEGER"; break; case "Decimal": // Use currency instead of decimal because of bug described at // http://social.msdn.microsoft.com/Forums/vstudio/en-US/5d6248a5-ef00-4f46-be9d-853207656bcc/localization-trouble-with-oledbparameter-and-decimal?forum=csharpgeneral columnDataType = "CURRENCY"; break; } stringBuilder.AppendFormat("{0} {1}", tableColumn.ColumnName, columnDataType); } stringBuilder.Append(")"); return stringBuilder.ToString(); } } 

एक्सेल एक्सपोर्ट के लिए वर्किंग कोड

  try { DataTable dt = DS.Tables[0]; string attachment = "attachment; filename=log.xls"; Response.ClearContent(); Response.AddHeader("content-disposition", attachment); Response.ContentType = "application/vnd.ms-excel"; string tab = ""; foreach (DataColumn dc in dt.Columns) { Response.Write(tab + dc.ColumnName); tab = "\t"; } Response.Write("\n"); int i; foreach (DataRow dr in dt.Rows) { tab = ""; for (i = 0; i < dt.Columns.Count; i++) { Response.Write(tab + dr[i].ToString()); tab = "\t"; } Response.Write("\n"); } Response.End(); } catch (Exception Ex) { } 

यदि आप स्वरूपित हैडर पाठ के साथ डेटा को एक्सट्रैक्ट करने के लिए इस तरह की कोशिश करते हैं।

 public void ExportFullDetails() { Int16 id = Convert.ToInt16(Session["id"]); DataTable registeredpeople = new DataTable(); registeredpeople = this.dataAccess.ExportDetails(eventid); string attachment = "attachment; filename=Details.xls"; Response.ClearContent(); Response.AddHeader("content-disposition", attachment); Response.ContentType = "application/vnd.ms-excel"; string tab = ""; registeredpeople.Columns["Reg_id"].ColumnName = "Reg. ID"; registeredpeople.Columns["Name"].ColumnName = "Name"; registeredpeople.Columns["Reg_country"].ColumnName = "Country"; registeredpeople.Columns["Reg_city"].ColumnName = "City"; registeredpeople.Columns["Reg_email"].ColumnName = "Email"; registeredpeople.Columns["Reg_business_phone"].ColumnName = "Business Phone"; registeredpeople.Columns["Reg_mobile"].ColumnName = "Mobile"; registeredpeople.Columns["PositionRole"].ColumnName = "Position"; registeredpeople.Columns["Reg_work_type"].ColumnName = "Work Type"; foreach (DataColumn dc in registeredpeople.Columns) { Response.Write(tab + dc.ColumnName); tab = "\t"; } Response.Write("\n"); int i; foreach (DataRow dr in registeredpeople.Rows) { tab = ""; for (i = 0; i < registeredpeople.Columns.Count; i++) { Response.Write(tab + dr[i].ToString()); tab = "\t"; } Response.Write("\n"); } Response.End(); } 

मैंने डेटा कोड को एक्सेल रूपांतरण के लिए निम्न कोड के साथ किया है। आशा है कि यह बहुत आसान है और इसे बदलने की कोई ज़रूरत नहीं है, बस कोड कॉपी करें और कीटनाशक को अपने वेरिएबल को बदल दें, और यह ठीक से काम करेगा।

पहले अपने समाधान दस्तावेज़ में एक फ़ोल्डर बनाएँ, और एक एक्सेल फ़ाइल MyTemplate.xlsx बनाएँ। आप अपनी आवश्यकता के अनुसार उन नामों को बदल सकते हैं। लेकिन याद रखें कि आपको कोड में नाम भी बदलना होगा।

कृपया निम्नलिखित कोड खोजें …

  protected void GetExcel_Click(object sender, EventArgs e) { ManageTicketBS objManageTicket = new ManageTicketBS(); DataTable DT = objManageTicket.GetAlldataByDate(); //this function will bring the data in DataTable format, you can use your function instate of that. string DownloadFileName; string FolderPath; string FileName = "MyTemplate.xlsx"; DownloadFileName = Path.GetFileNameWithoutExtension(FileName) + new Random().Next(10000, 99999) + Path.GetExtension(FileName); FolderPath = ".\\" + DownloadFileName; GetParents(Server.MapPath("~/Document/" + FileName), Server.MapPath("~/Document/" + DownloadFileName), DT); string path = Server.MapPath("~/Document/" + FolderPath); FileInfo file = new FileInfo(path); if (file.Exists) { try { HttpResponse response = HttpContext.Current.Response; response.Clear(); response.ClearContent(); response.ClearHeaders(); response.Buffer = true; response.ContentType = MimeType(Path.GetExtension(FolderPath)); response.AddHeader("Content-Disposition", "attachment;filename=" + DownloadFileName); byte[] data = File.ReadAllBytes(path); response.BinaryWrite(data); HttpContext.Current.ApplicationInstance.CompleteRequest(); response.End(); } catch (Exception ex) { ex.ToString(); } finally { DeleteOrganisationtoSupplierTemplate(path); } } } public string GetParents(string FilePath, string TempFilePath, DataTable DTTBL) { File.Copy(Path.Combine(FilePath), Path.Combine(TempFilePath), true); FileInfo file = new FileInfo(TempFilePath); try { DatatableToExcel(DTTBL, TempFilePath, 0); return TempFilePath; } catch (Exception ex) { return ""; } } public static string MimeType(string Extension) { string mime = "application/octetstream"; if (string.IsNullOrEmpty(Extension)) return mime; string ext = Extension.ToLower(); Microsoft.Win32.RegistryKey rk = Microsoft.Win32.Registry.ClassesRoot.OpenSubKey(ext); if (rk != null && rk.GetValue("Content Type") != null) mime = rk.GetValue("Content Type").ToString(); return mime; } static bool DeleteOrganisationtoSupplierTemplate(string filePath) { try { File.Delete(filePath); return true; } catch (IOException) { return false; } } public void DatatableToExcel(DataTable dtable, string pFilePath, int excelSheetIndex=1) { try { if (dtable != null && dtable.Rows.Count > 0) { IWorkbook workbook = null; ISheet worksheet = null; using (FileStream stream = new FileStream(pFilePath, FileMode.Open, FileAccess.ReadWrite)) { workbook = WorkbookFactory.Create(stream); worksheet = workbook.GetSheetAt(excelSheetIndex); int iRow = 1; foreach (DataRow row in dtable.Rows) { IRow file = worksheet.CreateRow(iRow); int iCol = 0; foreach (DataColumn column in dtable.Columns) { ICell cell = null; object cellValue = row[iCol]; switch (column.DataType.ToString()) { case "System.Boolean": if (cellValue != DBNull.Value) { cell = file.CreateCell(iCol, CellType.Boolean); if (Convert.ToBoolean(cellValue)) { cell.SetCellFormula("TRUE()"); } else { cell.SetCellFormula("FALSE()"); } //cell.CellStyle = _boolCellStyle; } break; case "System.String": if (cellValue != DBNull.Value) { cell = file.CreateCell(iCol, CellType.String); cell.SetCellValue(Convert.ToString(cellValue)); } break; case "System.Int32": if (cellValue != DBNull.Value) { cell = file.CreateCell(iCol, CellType.Numeric); cell.SetCellValue(Convert.ToInt32(cellValue)); //cell.CellStyle = _intCellStyle; } break; case "System.Int64": if (cellValue != DBNull.Value) { cell = file.CreateCell(iCol, CellType.Numeric); cell.SetCellValue(Convert.ToInt64(cellValue)); //cell.CellStyle = _intCellStyle; } break; case "System.Decimal": if (cellValue != DBNull.Value) { cell = file.CreateCell(iCol, CellType.Numeric); cell.SetCellValue(Convert.ToDouble(cellValue)); //cell.CellStyle = _doubleCellStyle; } break; case "System.Double": if (cellValue != DBNull.Value) { cell = file.CreateCell(iCol, CellType.Numeric); cell.SetCellValue(Convert.ToDouble(cellValue)); //cell.CellStyle = _doubleCellStyle; } break; case "System.DateTime": if (cellValue != DBNull.Value) { cell = file.CreateCell(iCol, CellType.String); DateTime dateTime = Convert.ToDateTime(cellValue); cell.SetCellValue(dateTime.ToString("dd/MM/yyyy")); DateTime cDate = Convert.ToDateTime(cellValue); if (cDate != null && cDate.Hour > 0) { //cell.CellStyle = _dateTimeCellStyle; } else { // cell.CellStyle = _dateCellStyle; } } break; default: break; } iCol++; } iRow++; } using (var WritetoExcelfile = new FileStream(pFilePath, FileMode.Create, FileAccess.ReadWrite)) { workbook.Write(WritetoExcelfile); WritetoExcelfile.Close(); //workbook.Write(stream); stream.Close(); } } } } catch (Exception ex) { throw ex; } } 

इस कोड को आपको अपनी स्क्रिप्ट में कॉपी और कीट की जरूरत है और नेमस्पेस को निम्नलिखित के रूप में जोड़ना होगा, साथ ही एक्सल फ़ाइल नाम को भी पहले से चर्चा में बदल दें।

 using NPOI.HSSF.UserModel; using NPOI.SS.UserModel; using NPOI.XSSF.UserModel; using NPOI.SS.Util; 

कृपया इसे आज़माएं, इससे एक्सेल करने के लिए आपके डेटा टेबल डेटा का तेज़ निर्यात होगा।

नोट: रेंज "एफडब्लू", मेरे पास मुश्किल कोड है क्योंकि मेरे पास 17 9 कॉलम हैं।

 public void UpdateExcelApplication(SqlDataTable dataTable) { var objects = new string[dataTable.Rows.Count, dataTable.Columns.Count]; var rowIndex = 0; foreach (DataRow row in dataTable.Rows) { var colIndex = 0; foreach (DataColumn column in dataTable.Columns) { objects[rowIndex, colIndex++] = Convert.ToString(row[column]); } rowIndex++; } var range = this.workSheet.Range[$"A3:FW{dataTable.Rows.Count + 2}"]; range.Value = objects; this.workSheet.Columns.AutoFit(); this.workSheet.Rows.AutoFit(); } 

DataTable के समान डेटा को Excel फ़ाइल में निर्यात करने के लिए प्रयास करें और इसे भी अनुकूलित कर सकते हैं।

 dtDataTable1 = ds.Tables[0]; try { Microsoft.Office.Interop.Excel.Application ExcelApp = new Microsoft.Office.Interop.Excel.Application(); Workbook xlWorkBook = ExcelApp.Workbooks.Add(Microsoft.Office.Interop.Excel.XlWBATemplate.xlWBATWorksheet); for (int i = 1; i > 0; i--) { Sheets xlSheets = null; Worksheet xlWorksheet = null; //Create Excel sheet xlSheets = ExcelApp.Sheets; xlWorksheet = (Worksheet)xlSheets.Add(xlSheets[1], Type.Missing, Type.Missing, Type.Missing); xlWorksheet.Name = "MY FIRST EXCEL FILE"; for (int j = 1; j < dtDataTable1.Columns.Count + 1; j++) { ExcelApp.Cells[i, j] = dtDataTable1.Columns[j - 1].ColumnName; ExcelApp.Cells[1, j].Interior.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Green); ExcelApp.Cells[i, j].Font.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.WhiteSmoke); } // for the data of the excel for (int k = 0; k < dtDataTable1.Rows.Count; k++) { for (int l = 0; l < dtDataTable1.Columns.Count; l++) { ExcelApp.Cells[k + 2, l + 1] = dtDataTable1.Rows[k].ItemArray[l].ToString(); } } ExcelApp.Columns.AutoFit(); } ((Worksheet)ExcelApp.ActiveWorkbook.Sheets[ExcelApp.ActiveWorkbook.Sheets.Count]).Delete(); ExcelApp.Visible = true; } catch (Exception ex) { MessageBox.Show(ex.Message); }