using System;
using
System.Reflection;
using
System.Globalization;
using
NetOfficeApi = LateBindingApi.Core.Factory;
using
ApiSettings = LateBindingApi.Core.Settings;
using
Excel = NetOffice.ExcelApi;
using
NetOffice.ExcelApi.Enums;
namespace
CSharpCornerExample
{
class Program
{
static void Main(string[] args)
{
// Initialize Api
NetOfficeApi.Initialize();
// start excel and turn Application msg boxes
Excel.Application excelApplication = new Excel.Application();
excelApplication.DisplayAlerts = false;
// add a new workbook
Excel.Workbook workBook = excelApplication.Workbooks.Add();
Excel.Worksheet workSheet = (Excel.Worksheet)workBook.Worksheets[1];
/* some kind of numerics */
// the given thread culture in all latebinding calls are stored in
/
/LateBindingApi.Core.Settings.
// you can change the culture. default is en-us.
CultureInfo cultureInfo = ApiSettings.ThreadCulture;
string Pattern1 = string.Format("0{0}00",
cultureInfo.NumberFormat.CurrencyDecimalSeparator);
string Pattern2 = string.Format("#{1}##0{0}00",
cultureInfo.NumberFormat.CurrencyDecimalSeparator,
cultureInfo.NumberFormat.CurrencyGroupSeparator);
workSheet.get_Range("A1").Value = "Type";
workSheet.get_Range("B1").Value = "Value";
workSheet.get_Range("C1").Value = "Formatted " + Pattern1;
workSheet.get_Range("D1").Value = "Formatted " + Pattern2;
int integerValue = 532234;
workSheet.get_Range("A3").Value = "Integer";
workSheet.get_Range("B3").Value = integerValue;
workSheet.get_Range("C3").Value = integerValue;
workSheet.get_Range("C3").NumberFormat = Pattern1;
workSheet.get_Range("D3").Value = integerValue;
workSheet.get_Range("D3").NumberFormat = Pattern2;
double doubleValue = 23172.64;
workSheet.get_Range("A4").Value = "double";
workSheet.get_Range("B4").Value = doubleValue;
workSheet.get_Range("C4").Value = doubleValue;
workSheet.get_Range("C4").NumberFormat = Pattern1;
workSheet.get_Range("D4").Value = doubleValue;
workSheet.get_Range("D4").NumberFormat = Pattern2;
float floatValue = 84345.9132f;
workSheet.get_Range("A5").Value = "float";
workSheet.get_Range("B5").Value = floatValue;
workSheet.get_Range("C5").Value = floatValue;
workSheet.get_Range("C5").NumberFormat = Pattern1;
workSheet.get_Range("D5").Value = floatValue;
workSheet.get_Range("D5").NumberFormat = Pattern2;
Decimal decimalValue = 7251231.313367m;
workSheet.get_Range("A6").Value = "Decimal";
workSheet.get_Range("B6").Value = decimalValue;
workSheet.get_Range("C6").Value = decimalValue;
workSheet.get_Range("C6").NumberFormat = Pattern1;
workSheet.get_Range("D6").Value = decimalValue;
workSheet.get_Range("D6").NumberFormat = Pattern2;
workSheet.get_Range("A9").Value = "DateTime";
workSheet.get_Range("B10").Value = cultureInfo.DateTimeFormat.FullDateTimePattern;
workSheet.get_Range("C10").Value = cultureInfo.DateTimeFormat.LongDatePattern;
workSheet.get_Range("D10").Value = cultureInfo.DateTimeFormat.ShortDatePattern;
workSheet.get_Range("E10").Value = cultureInfo.DateTimeFormat.LongTimePattern;
workSheet.get_Range("F10").Value = cultureInfo.DateTimeFormat.ShortTimePattern;
// DateTime
DateTime dateTimeValue = DateTime.Now;
workSheet.get_Range("B11").Value = dateTimeValue;
workSheet.get_Range("B11").NumberFormat =
cultureInfo.DateTimeFormat.FullDateTimePattern;
workSheet.get_Range("C11").Value = dateTimeValue;
workSheet.get_Range("C11").NumberFormat =
cultureInfo.DateTimeFormat.LongDatePattern;
workSheet.get_Range("D11").Value = dateTimeValue;
workSheet.get_Range("D11").NumberFormat =
cultureInfo.DateTimeFormat.ShortDatePattern;
workSheet.get_Range("E11").Value = dateTimeValue;
workSheet.get_Range("E11").NumberFormat =
cultureInfo.DateTimeFormat.LongTimePattern;
workSheet.get_Range("F11").Value = dateTimeValue;
workSheet.get_Range("F11").NumberFormat =
cultureInfo.DateTimeFormat.ShortTimePattern;
// string
workSheet.get_Range("A14").Value = "String";
workSheet.get_Range("B14").Value = "This is a sample String";
workSheet.get_Range("B14").NumberFormat = "@";
// number as string
workSheet.get_Range("B15").Value = "513";
workSheet.get_Range("B15").NumberFormat = "@";
// set colums
workSheet.Columns[1, Missing.Value].AutoFit();
workSheet.Columns[2, Missing.Value].AutoFit();
workSheet.Columns[3, Missing.Value].AutoFit();
workSheet.Columns[4, Missing.Value].AutoFit();
// save the book
string fileExtension = GetDefaultExtension(excelApplication);
string workbookFile = string.Format("{0}\\ExcelExample{1}", Environment.CurrentDirectory, fileExtension);
workBook.SaveAs(workbookFile, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value,
XlSaveAsAccessMode.xlExclusive);
// close excel and dispose reference
excelApplication.Quit();
excelApplication.Dispose();
}

#region
Helper
/// <summary>
/// returns the valid file extension for the instance. for example ".xls" or ".xlsx"
/// </summary>
/// <param name="application">the instance</param>
/// <returns>the extension</returns>
private static string GetDefaultExtension(Excel.Application application)
{
double version = Convert.ToDouble(application.Version);
if (version >= 120.00)
return ".xlsx";
else
return ".xls";
}

#endregion

}
}