C#worksheet设置Excel样式1.例⼦导出Excel的样式样式代码public void Exportdatagridviewtoexcel(string Textname){SaveFileDialog savedialog = new SaveFileDialog();savedialog.DefaultExt = "xlsx";savedialog.Filter = "microsoft office execl files (*.xlsx)|*.xlsx";savedialog.FilterIndex = 0;savedialog.RestoreDirectory = true;savedialog.Title = "导出数据到excel表格";savedialog.ShowDialog();if (savedialog.FileName.IndexOf(":") < 0) return; //被点了取消//Microsoft.office.interop.excel.application xlapp = new microsoft.office.interop.excel.application();Microsoft.Office.Interop.Excel.Application xlapp = new Microsoft.Office.Interop.Excel.Application();if (xlapp == null){MessageBox.Show("可能您的机⼦未安装excel,⽆法创建excel对象!", "系统提⽰ ", MessageBoxButtons.OK, MessageBoxIcon.Error);return;}Microsoft.Office.Interop.Excel.Workbooks workbooks = xlapp.Workbooks;Microsoft.Office.Interop.Excel.Workbook workbook = workbooks.Add(Microsoft.Office.Interop.Excel.XlWBATemplate.xlWBATWorksheet); Microsoft.Office.Interop.Excel.Worksheet worksheet = (Microsoft.Office.Interop.Excel.Worksheet)workbook.Worksheets[1];//取得sheet1 string ADD = "盘点录⼊明细表时间:" + DateTime.Now.ToShortDateString();worksheet.get_Range(worksheet.Cells[1, 1], worksheet.Cells[1, 7]).MergeCells = true;//worksheet.get_Range(worksheet.Cells[1, 1], worksheet.Cells[1, 7]).Font.Bold = true;//worksheet.Cells[1, 1] = "" + Textname;worksheet.Cells[2, 1] = "" + "使⽤科室";worksheet.get_Range(worksheet.Cells[2, 2], worksheet.Cells[2, 3]).MergeCells = true;worksheet.get_Range(worksheet.Cells[2, 5], worksheet.Cells[2, 7]).MergeCells = true;//worksheet.Cells[2, 5] = "" + "年⽉⽇";worksheet.Cells[3, 1] = "患者姓名";worksheet.Cells[3, 2] = "";worksheet.Cells[3, 3] = "性别";worksheet.Cells[3, 4] = "";worksheet.Cells[3, 5] = "年龄";worksheet.Cells[4, 1] = "住院号";worksheet.Cells[4, 2] = "";worksheet.Cells[4, 3] = "床位号";worksheet.Cells[4, 4] = "";worksheet.Cells[4, 5] = "⼿术名称";worksheet.Cells[5, 1] = "使⽤部位";worksheet.Cells[5, 2] = "";worksheet.Cells[5, 3] = "⼿术⽇期";worksheet.Cells[5, 4] = "";worksheet.Cells[5, 5] = "医保类型";worksheet.get_Range(worksheet.Cells[3, 6], worksheet.Cells[3, 7]).MergeCells = true;worksheet.get_Range(worksheet.Cells[4, 6], worksheet.Cells[4, 7]).MergeCells = true;worksheet.get_Range(worksheet.Cells[5, 6], worksheet.Cells[5, 7]).MergeCells = true;worksheet.Cells[5, 6] = "";worksheet.Cells[4, 6] = "";worksheet.Cells[3, 6] = "";worksheet.Cells[6, 1] = "⽣产⼚家";worksheet.get_Range(worksheet.Cells[6, 2], worksheet.Cells[6, 3]).MergeCells = true;worksheet.Cells[6, 4] = "注册证号";worksheet.get_Range(worksheet.Cells[6, 5], worksheet.Cells[6, 7]).MergeCells = true;worksheet.Cells[7, 1] = "⽣产⽇期";worksheet.Cells[7, 2] = "";worksheet.Cells[7, 3] = "灭菌⽇期";worksheet.Cells[7, 4] = "";worksheet.Cells[7, 5] = "有效⽇期";worksheet.get_Range(worksheet.Cells[7, 6], worksheet.Cells[7, 7]).MergeCells = true;worksheet.Cells[7, 6] = "";worksheet.Cells[8, 1] = "供货单位";worksheet.get_Range(worksheet.Cells[8, 2], worksheet.Cells[8, 3]).MergeCells = true;worksheet.Cells[8, 4] = "供货商签字";worksheet.Cells[8, 5] = "";worksheet.Cells[8, 6] = "联系电话";worksheet.Cells[8, 7] = "";worksheet.Cells[9, 1] = "产品名称";worksheet.Cells[9, 2] = "规格型号";worksheet.Cells[9, 3] = "产品批号";worksheet.Cells[9, 4] = "单价";worksheet.Cells[9, 5] = "数量";worksheet.Cells[9, 6] = "单位";worksheet.Cells[9, 7] = "⾦额 ";worksheet.Cells[10, 1] = "";worksheet.Cells[10, 2] = "";worksheet.Cells[10, 3] = "";worksheet.Cells[10, 4] = "";worksheet.Cells[10, 5] = "";worksheet.Cells[10, 6] = "";worksheet.Cells[10, 7] = "";worksheet.Cells[11, 1] = "";worksheet.Cells[11, 2] = "";worksheet.Cells[11, 3] = "";worksheet.Cells[11, 4] = "";worksheet.Cells[11, 5] = "";worksheet.Cells[11, 6] = "";worksheet.Cells[11, 7] = "";worksheet.Cells[12, 1] = "";worksheet.Cells[12, 2] = "";worksheet.Cells[12, 3] = "";worksheet.Cells[12, 4] = "";worksheet.Cells[12, 5] = "";worksheet.Cells[12, 6] = "";worksheet.Cells[12, 7] = "";worksheet.Cells[13, 1] = "";worksheet.Cells[13, 2] = "";worksheet.Cells[13, 3] = "";worksheet.Cells[13, 4] = "";worksheet.Cells[13, 5] = "";worksheet.Cells[13, 6] = "";worksheet.Cells[13, 7] = "";worksheet.Cells[14, 1] = "⾼值耗材使⽤医⽣签字";worksheet.Cells[14, 5] = "⼿术护⼠";worksheet.Cells[14, 6] = "";worksheet.Cells[14, 7] = "";worksheet.get_Range(worksheet.Cells[14, 6], worksheet.Cells[14, 7]).MergeCells = true;worksheet.get_Range(worksheet.Cells[14, 1], worksheet.Cells[14, 3]).MergeCells = true;worksheet.Cells[15, 1] = "收费⼈员(记账⼈员)签字";worksheet.Cells[15, 5] = "收费价格";worksheet.Cells[15, 6] = "";worksheet.Cells[15, 7] = "";worksheet.get_Range(worksheet.Cells[15, 6], worksheet.Cells[15, 7]).MergeCells = true;worksheet.get_Range(worksheet.Cells[15, 1], worksheet.Cells[15, 3]).MergeCells = true;worksheet.Cells[16, 1] = "科室负责⼈签字";worksheet.Cells[16, 3] = "";worksheet.Cells[16, 4] = "";worksheet.Cells[16, 5] = "设备采购签字";worksheet.Cells[16, 6] = "";//worksheet.get_Range(worksheet.Cells[1, 1], worksheet.Cells[2, 10]).Text = ADD;worksheet.get_Range(worksheet.Cells[16, 1], worksheet.Cells[16, 2]).MergeCells = true;worksheet.get_Range(worksheet.Cells[16, 5], worksheet.Cells[16, 6]).MergeCells = true;//worksheet.get_Range(worksheet.Cells[1, 1], worksheet.Cells[2, 8]).HorizontalAlignment = Microsoft.Office.Interop.Excel.XlVAlign.xlVAlignCenter;//worksheet.get_Range(worksheet.Cells[3, 1], worksheet.Cells[3, 8]).Font.Bold = true;//worksheet.get_Range(worksheet.Cells[1, 1], worksheet.Cells[2, 8]).Borders[Microsoft.Office.Interop.Excel.XlBordersIndex.xlEdgeLeft].Weight = Microsoft.Office.Interop.Excel.XlBorderWeight.xlThick;//worksheet.get_Range(worksheet.Cells[1, 1], worksheet.Cells[2, 8]).Borders[Microsoft.Office.Interop.Excel.XlBordersIndex.xlEdgeRight].Weight = Microsoft.Office.Interop.Excel.XlBorderWeight.xlThick; //worksheet.get_Range(worksheet.Cells[1, 1], worksheet.Cells[2, 8]).Borders[Microsoft.Office.Interop.Excel.XlBordersIndex.xlEdgeTop].Weight = Microsoft.Office.Interop.Excel.XlBorderWeight.xlThick;//worksheet.get_Range(worksheet.Cells[1, 1], worksheet.Cells[2, 8]).Borders[Microsoft.Office.Interop.Excel.XlBordersIndex.xlEdgeBottom].Weight = Microsoft.Office.Interop.Excel.XlBorderWeight.xlThick; worksheet.Cells[17, 1] = "⾼值耗材唯⼀性标⽰";//worksheet.get_Range(worksheet.Cells[17, 1], worksheet.Cells[17, 1]).VerticalAlignment = Microsoft.Office.Interop.Excel.XlVAlign.xlVAlignCenter;worksheet.get_Range(worksheet.Cells[17, 1], worksheet.Cells[27, 1]).MergeCells = true;worksheet.get_Range(worksheet.Cells[17, 2], worksheet.Cells[27, 7]).MergeCells = true;worksheet.get_Range(worksheet.Cells[17, 1], worksheet.Cells[27, 1]).WrapText = true;//worksheet.get_Range(worksheet.Cells[1, 1], worksheet.Cells[27, 7]).Borders.Weight = Microsoft.Office.Interop.Excel.XlBorderWeight.xlThin;worksheet.get_Range(worksheet.Cells[1, 1], worksheet.Cells[1, 7]).HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter;if (savedialog.FileName != ""){try{workbook.Saved = true;workbook.SaveCopyAs(savedialog.FileName);}catch (Exception ex){MessageBox.Show("导出⽂件时出错,⽂件可能正被打开!..." + ex.Message, "系统提⽰ ", MessageBoxButtons.OK, MessageBoxIcon.Error);}}//GC.Collect();//强⾏销毁MessageBox.Show("数据导出成功! ", "提⽰信息", MessageBoxButtons.OK, rmation);}2.单元格样式设置Excel.Range r =mySheet.get_Range(mySheet.Cells[1,1],mySheet.Cells[DT.Rows.Count + 2,DT.Columns.Count - 3]);r.NumberFormat="@"; //设置单元格格式为⽂本类型,⽂本类型可设置上下标r.NumberForma="0.00_ "//设置单元格格式为数值类型,⼩数点后2位r.NumberForma="¥#,##0.00;¥-#,##0.00"//设设置单元格格式为货币类型,⼩数点后2位r.NumberForma=_"_ ¥*#,##0.00_;_ ¥*-#,##0.00_ ;_ ¥*""-""??_;_ @_ "//置单元格格式为会计专⽤类型,⼩数点后2位r.NumberForma="yyyy-m-d"//设置单元格格式为⽇期类型r.NumberForma="[$-F400]h:mm:ss AM/PM"//设置单元格格式为时间类型r.NumberForma="0.00%"//设置单元格格式为百分⽐类型,⼩数点后2位r.NumberForma="# ?/?"设置单元格格式为分数类型,分母为⼀位数r.NumberForma="0.00E+00"//设置单元格格式为科学技术类型,⼩数位数为2r.NumberForma="000000"//设置单元格格式为特殊类型B、上下标格式的控制;mySheet.get_Range(mySheet.Cells[i+3, DT.Columns.Count - 3],mySheet.Cells[i + 3, DT.Columns.Count -3]).get_Characters(a.Length+ 1,b.Length).Font.Subscript =true;//控制输出样式为下标mySheet.get_Range(mySheet.Cells[i+3, DT.Columns.Count - 3],mySheet.Cells[i + 3, DT.Columns.Count-3]).get_Characters(a.Length + b.Length+ 1, c.Length).Font.Superscript =true; //控制输出样式为上标C、单元格⽔平垂直对齐⽅式;//单元格⽔平,垂直居中r.HorizontalAlignment=Excel.XlHAlign.xlHAlignCenter;r.VerticalAlignment=Excel.XlVAlign.xlVAlignCenter;上⾯代码中,枚举XLHAlign的值还有:// 右对齐xlHAlignRight,// 左对齐.xlHAlignLeft,// 两端对齐.xlHAlignJustify,// 分散对齐(缩进)xlHAlignDistributed,// 居中对齐xlHAlignCenter,// 依照数据类型对齐,常规xlHAlignGeneral,// 填充xlHAlignFill,// 跨列对齐.xlHAlignCenterAcrossSelection=7,枚举XLVAlign的值还有:// 靠上对齐xlVAlignTop,//两端对齐.xlVAlignJustify=-4130,//分散对齐.xlVAlignDistributed,//居中对齐.xlVAlignCenter,//靠下对齐.xlVAlignBottom=-4107,D、单元格边框设置;//设置边框Excel.Range r =mySheet.get_Range(mySheet.Cells[1,1],mySheet.Cells[DT.Rows.Count + 2,DT.Columns.Count - 3]);r.Borders.LineStyle=Excel.XlLineStyle.xlContinuous;枚举XlLineStyle中还有下⾯线形://没边框线xlLineStyleNone,//双线.xlDouble,//点状线.xlDot,//虚线.xlDash,//连续线.xlContinuous,//点线交互型xlDashDot,//两点⼀线型xlDashDotDot,//斜线.xlSlantDashDot,E、单元格合并⽤get_Range⽅法获取要合并的单元格,再设置MergeCells属性的值进⾏合并。