C#读写excel文件时,怎么改变字体和背景色 如题,如何设置cell的颜色和字体! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 //LZ参考一下using MSExcel = Microsoft.Office.Interop.Excel;using System.IO;using System.Reflection;class Program{ static void Main(string[] args) { string path; MSExcel.Application excelApp; MSExcel.Workbook excelDoc; path = @"d:\test.xlsx"; excelApp = new MSExcel.ApplicationClass(); if(File.Exists(path)) { File.Delete(path); } Object nothing = Missing.Value; excelDoc = excelApp.Workbooks.Add(nothing); MSExcel.Worksheet ws = (MSExcel.Worksheet)excelDoc.Sheet[1]; MSExcel.Range r; r = ws.get_Range("A1","A1"); r.Value2 = "3"; r = ws.get_Range("A2","A2"); r.Value2 = "5.7"; r = ws.get_Range("A3","A3"); r.Value2 = "4.8"; r = ws.get_Range("A4","A4"); r.Value2 = "9.2"; r = ws.get_Range("A5","A5"); r.Value2 = "6.4"; excelDoc.Charts.Add(nothing,nothing,nothing,nothing); excelDoc.ActiveChart.ChartType = MSExcel.XlChartType.xlColumnClustered; excelDoc.ActiveChart.SetSourceData(ws.get_Range("A1","A5"),MSExcel.XlRowCol.xlColumns); excelDoc.ActiveChart.Location(MSExcel.XlChartLocation.xlLocationAsObject,"sheet1"); excelDoc.ActiveChart.HasTitle = true; excelDoc.ActiveChart.ChartTitle.Text = "创建图表"; excelDoc.ActiveChart.hasDataTable = false; object format = MSExcel.XlFileFormat.xlWorkbookDefault; excelDoc.SaveAs(path,format,nothing,nothing,nothing,nothing, MSExcel.XlSaveAsAccessMode.xlExclusive,nothing,nothing,nothing,nothing,nothing); excelDoc.Close(nothing,nothing,nothing); excelApp.Quit(); }} 不是直接操作excel,而是使用C#程序生成报表的!它的cell对象里头只设置值,单元的属性不知道怎么设! 操作Excel时,最好通过Range对象来操作某部分单元格,可通过Range.Font.Size和Range.Font.ColorIndex属性设置相关文字的大小和颜色:range = objSheet.get_Range(objSheet.Cells[1, 1], objSheet.Cells[1, thisCell]); ((Excel.Range)objSheet.Rows[1,Miss]).RowHeight = 20; range.Value = "总仓和代管仓汇总表"; range.Font.Bold = true; range.MergeCells = true; range.Font.ColorIndex = 5; range.Font.Size = 20; 个人觉得不错的方法就是在EXCEL中录制宏 然后参考VBA代码 很想C#利用的 如果哪位高人有好办法可以说出来尤其是不知道颜色index时比较好用 就是这个,和操作word的字体格式方法差不多 //合并 excelRangeParm.Merge(Missing.Value); //粗体设置 excelRangeParm.Font.Bold = true; //字体大小设置 excelRangeParm.Font.Size = 12; //水平对齐设置 excelRangeParm.HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter; //垂直对齐设置 excelRangeParm.VerticalAlignment = Excel.XlVAlign.xlVAlignCenter; //公式设置 excelRangeParm.FormulaR1C1 = 公式; //列宽设置 excelRange.ColumnWidth = 宽度; //行高 excelRange.RowHeight = 行高; //设置列格式 Excel.Range myrange=mysheet.get_Range(mysheet.Cells[1,1],mysheet.Cells[5,1]); myrange.NumberFormatLocal="@";//文本格式 //设置第10行为红色 mysheet.get_Range((Excel.Range)mysheet.Cells[10,1],(Excel.Range)mysheet.Cells[10,200]).Select(); mysheet.get_Range((Excel.Range)mysheet.Cells[10,1],(Excel.Range)mysheet.Cells[10,200]).Interior.ColorIndex=3; C# 2005中的文件版本和产品版本??? "','附近有语法错误,请高手指教 万分感谢 c#应用程序里保存picturebox里画的图像的问题。 getint 在C#中怎样让窗体一直占有焦点? DataList中的HeaderTemplate的问题.死不都不信这有错,但是就是错了,郁闷 关于两窗口的通讯问题 在datagird中 双击一条记录 在文本框中显示 如何做? 打开项目的时候报做这个错误~是这么回事 有关用c#重写listView控件的问题 获取客户端IP问题,为什么得到的IP是::1? datagridview多行更新问题
//LZ参考一下
using MSExcel = Microsoft.Office.Interop.Excel;using System.IO;using System.Reflection;class Program{ static void Main(string[] args) { string path; MSExcel.Application excelApp; MSExcel.Workbook excelDoc; path = @"d:\test.xlsx"; excelApp = new MSExcel.ApplicationClass(); if(File.Exists(path)) { File.Delete(path); } Object nothing = Missing.Value; excelDoc = excelApp.Workbooks.Add(nothing); MSExcel.Worksheet ws = (MSExcel.Worksheet)excelDoc.Sheet[1]; MSExcel.Range r; r = ws.get_Range("A1","A1"); r.Value2 = "3"; r = ws.get_Range("A2","A2"); r.Value2 = "5.7"; r = ws.get_Range("A3","A3"); r.Value2 = "4.8"; r = ws.get_Range("A4","A4"); r.Value2 = "9.2"; r = ws.get_Range("A5","A5"); r.Value2 = "6.4"; excelDoc.Charts.Add(nothing,nothing,nothing,nothing); excelDoc.ActiveChart.ChartType = MSExcel.XlChartType.xlColumnClustered; excelDoc.ActiveChart.SetSourceData(ws.get_Range("A1","A5"),MSExcel.XlRowCol.xlColumns); excelDoc.ActiveChart.Location(MSExcel.XlChartLocation.xlLocationAsObject,"sheet1"); excelDoc.ActiveChart.HasTitle = true; excelDoc.ActiveChart.ChartTitle.Text = "创建图表"; excelDoc.ActiveChart.hasDataTable = false; object format = MSExcel.XlFileFormat.xlWorkbookDefault; excelDoc.SaveAs(path,format,nothing,nothing,nothing,nothing, MSExcel.XlSaveAsAccessMode.xlExclusive,nothing,nothing,nothing,nothing,nothing); excelDoc.Close(nothing,nothing,nothing); excelApp.Quit(); }}
它的cell对象里头只设置值,单元的属性不知道怎么设!
((Excel.Range)objSheet.Rows[1,Miss]).RowHeight = 20;
range.Value = "总仓和代管仓汇总表";
range.Font.Bold = true;
range.MergeCells = true;
range.Font.ColorIndex = 5;
range.Font.Size = 20;
尤其是不知道颜色index时比较好用
就是这个,和操作word的字体格式方法差不多
excelRangeParm.Merge(Missing.Value);
//粗体设置
excelRangeParm.Font.Bold = true;
//字体大小设置
excelRangeParm.Font.Size = 12;
//水平对齐设置
excelRangeParm.HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter;
//垂直对齐设置
excelRangeParm.VerticalAlignment = Excel.XlVAlign.xlVAlignCenter;
//公式设置
excelRangeParm.FormulaR1C1 = 公式;
//列宽设置
excelRange.ColumnWidth = 宽度;
//行高
excelRange.RowHeight = 行高; //设置列格式
Excel.Range myrange=mysheet.get_Range(mysheet.Cells[1,1],mysheet.Cells[5,1]);
myrange.NumberFormatLocal="@";//文本格式
//设置第10行为红色
mysheet.get_Range((Excel.Range)mysheet.Cells[10,1],(Excel.Range)mysheet.Cells[10,200]).Select();
mysheet.get_Range((Excel.Range)mysheet.Cells[10,1],(Excel.Range)mysheet.Cells[10,200]).Interior.ColorIndex=3;