Range or = (Excel.Range)sh.Columns[0, Convert.ToInt32(ColumnType.GetKey(i))];
switch ((ExcelColumnDataType)ColumnType.GetByIndex(i))
{
case ExcelColumnDataType.Currency:
{
or.NumberFormat = "#,##0.0000";
break;
}
case ExcelColumnDataType.DateTime:
{
or.NumberFormat = "yyyy-mm-dd hh:mm;@";
break;
}
case ExcelColumnDataType.Normal:
{
break;
}
case ExcelColumnDataType.Number:
{
or.NumberFormat = "0.00_ ";
         break;
}
case ExcelColumnDataType.Percent:
{
or.NumberFormat = "0.00%";
break;
}
case ExcelColumnDataType.Text:
{
or.NumberFormat = "@";
break;
}
case ExcelColumnDataType.Integer:
{
or.NumberFormat = "0_ ";
break;
}
default:
{
goto case ExcelColumnDataType.Normal;
}
}
System.Runtime.InteropServices.Marshal.ReleaseComObject(or);
or = null;注意,我这个代码的第一句要出错,其他都对的

解决方案 »

  1.   

    在C#里控制格式不太容易,尤其是很自由,很灵活的格式,建议用模板来做,先建个适合自己需要的EXCEL模板,然后在C#里用程序打开模板在里面插入内容。
      

  2.   

    http://blog.csdn.net/cocosoft/archive/2003/10/08/19137.aspx
      

  3.   

    可以通过一个循环往WorkBook里面写的,写的过程中,在对应的列添加你想设置的样式。
      

  4.   

    试试第三方控件ComponentOne2004的C1Excel