Salva un file excel in c #

void excelsave() { try { ApplicationClass app = new ApplicationClass(); // the Excel application. Workbook book = null; Worksheet sheet = null; Range range = null; // the range object is used to hold the data app.Visible = false; app.ScreenUpdating = false; app.DisplayAlerts = false; string execPath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().CodeBase); book = app.Workbooks.Open(@"E:\SSIS\ABC\Book1.xls", Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value); sheet = (Worksheet)book.Worksheets[1]; range = sheet.get_Range("A1", Missing.Value); range.Columns.ColumnWidth = 22.34; range = sheet.get_Range("B1", Missing.Value); range.Columns.ColumnWidth = 22.34; book.SaveAs(@"E:\SSIS\ABC\Book1.xls", Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, XlSaveAsAccessMode.xlExclusive, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing); } catch (Exception ex) { } } 

Qui sto aprendo un foglio Excel cercando di aumentare la larghezza della colonna e ho bisogno di rendere le intestazioni delle colonne in grassetto e di salvare il documento, in questo momento il documento non viene salvato. Sto usando vs 2008, c # 3.5

C’è qualcosa che sto facendo di sbagliato qui? qualsiasi aiuto su questo sarebbe un ottimo aspetto per una soluzione

Ho eseguito quanto segue utilizzando VS 2010 e .NET 4, ma questo codice dovrebbe comunque funzionare nel tuo ambiente. Inoltre, ho semplificato un po ‘il tuo codice. Spero che questo ti guiderà nella giusta direzione.

  static void excelsave() { try { Application app = new Application(); string execPath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().CodeBase); Workbook book = app.Workbooks.Open(@"c:\test.xls"); Worksheet sheet = (Worksheet)book.Worksheets[1]; Range range = sheet.get_Range("A1"); range.Columns.ColumnWidth = 22.34; range = sheet.get_Range("B1"); range.Columns.ColumnWidth = 22.34; sheet.get_Range("A1", "B1").Font.Bold = true; book.SaveAs(@"c:\test2.xls"); // or book.Save(); book.Close(); } catch (Exception ex) { } } 

AGGIORNARE

Puoi trovare una spiegazione / esempio simile di quello che stai facendo a: http://www.dotnetperls.com/excel

 Marshal.ReleaseComObject(book); // do this after the close 

Inoltre, c’è una buona discussione sulla pulizia di Excel / COM … Come pulire correttamente gli oggetti di interoperabilità di Excel in c #