C# 对Excel 单元格格式, 及行高、 列宽、 单元格边框线、 冻结设置

简介:

 

一、对行高,列宽、单元格边框等的设置

这篇简短的文字对单元格的操作总结的比较全面,特此转载过来。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
private  _Workbook _workBook =  null ;
private  Worksheet _workSheet =  null ;
private  Excel.Application _excelApplicatin =  null ;
 
_excelApplicatin =  new  Excel.Application();
_excelApplicatin.Visible =  true ;
_excelApplicatin.DisplayAlerts =  true ;
 
_workBook = _excelApplicatin.Workbooks.Add(XlSheetType.xlWorksheet);
_workSheet = (Worksheet)_workBook.ActiveSheet;
_workSheet.Name =  "workSheetName" ;
 
//打开已存在的Excel
string  strExcelPathName = AppDomain.CurrentDomain.BaseDirectory +  "excelSheetName.xls" ;
Excel.Workbook workBook = application.Workbooks.Open(strExcelPathName, Type.Missing, Type.Missing,
               Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,
               Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
<br data-filtered= "filtered" > //读取已打开的Excel
Excel.Worksheet workSheet1 = (Excel.Worksheet)workBook.Sheets[ "SheetName1" ];
Excel.Worksheet workSheet2 = (Excel.Worksheet)workBook.Sheets[ "SheetName2" ];       
 
//添加一个workSheet
Worksheet workSheet = (Worksheet)workBook.Worksheets.Add(System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing);
 
//RowHeight   "1:1"表示第一行, "1:2"表示,第一行和第二行
((Excel.Range)_workSheet.Rows[ "1:1" , System.Type.Missing]).RowHeight = 100;
 
//ColumnWidth "A:B"表示第一列和第二列, "A:A"表示第一列
((Excel.Range)_workSheet.Columns[ "A:B" , System.Type.Missing]).ColumnWidth = 10;
 
// EXCEL操作(需要冻结的字段 按住ALT+W 再按F)
  Excel.Range excelRange = _workSheet .get_Range(_workSheet .Cells[10, 5], _workSheet .Cells[10, 5]);
excelRange.Select();
excelApplication.ActiveWindow.FreezePanes =  true ;
 
//Borders.LineStyle 单元格边框线
Excel.Range excelRange = _workSheet.get_Range(_workSheet.Cells[2, 2], _workSheet.Cells[4, 6]);
//单元格边框线类型(线型,虚线型)
excelRange.Borders.LineStyle = 1;
excelRange.Borders.get_Item(XlBordersIndex.xlEdgeTop).LineStyle = Excel.XlLineStyle.xlContinuous;
//指定单元格下边框线粗细,和色彩
excelRange.Borders.get_Item(XlBordersIndex.xlEdgeBottom).Weight = Excel.XlBorderWeight.xlMedium;
 
excelRange.Borders.get_Item(XlBordersIndex.xlEdgeBottom).ColorIndex =3;
 
//设置字体大小
excelRange.Font.Size = 15;
//设置字体是否有下划线
excelRange.Font.Underline =  true
 
//设置字体在单元格内的对其方式
excelRange.HorizontalAlignment = XlHAlign.xlHAlignCenter;
//设置单元格的宽度
excelRange.ColumnWidth = 15;
//设置单元格的背景色
excelRange.Cells.Interior.Color = System.Drawing.Color.FromArgb(255, 204, 153).ToArgb();
// 给单元格加边框
excelRange.BorderAround(XlLineStyle.xlContinuous, XlBorderWeight.xlThick,
XlColorIndex.xlColorIndexAutomatic, System.Drawing.Color.Black.ToArgb());<br data-filtered= "filtered" >
//自动调整列宽
excelRange.EntireColumn.AutoFit();
// 文本水平居中方式
excelRange.HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter;           
//文本自动换行
excelRange.WrapText =  true ;
//填充颜色为淡紫色
excelRange.Interior.ColorIndex = 39;
 
//合并单元格
excelRange.Merge(excelRange.MergeCells);
_workSheet.get_Range( "A15" "B15" ).Merge(_workSheet.get_Range( "A15" "B15" ).MergeCells);
 
/// <summary>
/// 常用颜色定义,对就Excel中颜色名
/// </summary>
public  enum  ColorIndex
{
    无色 = -4142,   自动 = -4105,   黑色 = 1,   褐色 = 53,   橄榄 = 52,   深绿 = 51,   深青 = 49,
    深蓝 = 11,   靛蓝 = 55,   灰色80 = 56,   深红 = 9,   橙色 = 46,   深黄 = 12,   绿色 = 10,
    青色 = 14,   蓝色 = 5,   蓝灰 = 47,   灰色50 = 16,   红色 = 3,   浅橙色 = 45,   酸橙色 = 43,
    海绿 = 50,   水绿色 = 42,   浅蓝 = 41,       紫罗兰 = 13,   灰色40 = 48,   粉红 = 7,
    金色 = 44,   黄色 = 6,   鲜绿 = 4,   青绿 = 8,   天蓝 = 33,   梅红 = 54,   灰色25 = 15,
    玫瑰红 = 38,   茶色 = 40,   浅黄 = 36,   浅绿 = 35,   浅青绿 = 34,   淡蓝 = 37,   淡紫 = 39,
    白色 = 2
}

 

Code segment2

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
range.NumberFormatLocal =  "@" ;      //设置单元格格式为文本
range = (Range)worksheet.get_Range( "A1" "E1" );      //获取Excel多个单元格区域:本例做为Excel表头
range.Merge(0);      //单元格合并动作
worksheet.Cells[1, 1] =  "Excel单元格赋值" ;      //Excel单元格赋值
range.Font.Size = 15;      //设置字体大小
range.Font.Underline= true ;      //设置字体是否有下划线
range.Font.Name= "黑体" ;       设置字体的种类  
range.HorizontalAlignment=XlHAlign.xlHAlignCenter;      //设置字体在单元格内的对其方式
range.ColumnWidth=15;      //设置单元格的宽度
range.Cells.Interior.Color=System.Drawing.Color.FromArgb(255,204,153).ToArgb();      //设置单元格的背景色
range.Borders.LineStyle=1;      //设置单元格边框的粗细
range.BorderAround(XlLineStyle.xlContinuous,XlBorderWeight.xlThick,XlColorIndex.xlColorIndexAutomatic,System.Drawing.Color.Black.ToArgb());      //给单元格加边框
range.Borders.get_Item(Microsoft.Office.Interop.Excel.XlBordersIndex.xlEdgeTop).LineStyle = Microsoft.Office.Interop.Excel.XlLineStyle.xlLineStyleNone;  //设置单元格上边框为无边框
     range.EntireColumn.AutoFit();      //自动调整列宽
Range.HorizontalAlignment= xlCenter;      // 文本水平居中方式
Range.VerticalAlignment= xlCenter      //文本垂直居中方式
Range.WrapText= true ;      //文本自动换行
Range.Interior.ColorIndex=39;      //填充颜色为淡紫色
Range.Font.Color=clBlue;      //字体颜色
xlsApp.DisplayAlerts= false ;      //保存Excel的时候,不弹出是否保存的窗口直接进行保存

 

Excel Interior.ColorIndex色彩列表

 

对用的Interior.ColorIndex色彩列表。

在C# 对Excel编程中的使用:

1
2
3
4
5
6
7
8
9
for  ( int  i = 5; i < countRow + 1; i++)
            {
                string  strKB =  null ;
                Microsoft.Office.Interop.Excel.Range kbrng = (Microsoft.Office.Interop.Excel.Range)sheSource.Cells[i, 1];
                if  (kbrng.Value2 !=  null )
                    strKB = kbrng.Value2.ToString();
                if  (strTotal.Contains(strKB))
                    kbrng.Interior.ColorIndex = 3;
            }

 

二、常见的Excel单元格格式设置内容

2.1 数字(Range.NumberFormatlocal 属性)

常规:

Range.NumberFormatlocal = "G/通用格式"

数值:

Range.NumberFormatlocal = "0.000_" --保留小 数位数为3  (此处“_”表示:留下一个与下一个字符同等宽度的空格)

Range.NumberFormatlocal = "0" --不要小数

Range.NumberFormatlo cal = "#,##0.000" --保留小数位数为3,并使用千位分隔符
货币:

Range.NumberFormatlocal = "$#,##0.000"
百分比:

Range.NumberFormatlocal = "0.000%"
分数:

Range.NumberFormatlocal = "# ?/?"
科学计数:

Range.NumberFormatlocal = "0.00E+00"

文本

Range.NumberFormatlocal = "@"

特殊:

Range.NumberFormatlocal = "000000"---邮政编码
Range.NumberFormatlocal = "[DBNum1]G/通用格式"---中文小写数字
Range.NumberFormatlocal = "[DBNum2]G/通用格式"---中文大写数字
Range.NumberFormatlocal = "[DBNum2][$RMB]G/通用格式"---人民币大写

2.2 对齐

水平对齐:Range.HorizontalAlignment = etHAlignCenter  ---居中
垂 直对齐:Range.VerticalAlignment = etVAlignCenter---居中
是否自动换行:Range.WrapText = True
是否缩小字体填充:Range.ShrinkToFit = True
是否合并单元格:Range.MergeCells = False
文字竖排:Range.Orientation = etVertical
文字倾斜度数:Range.Orientation = 45 -----倾斜45度
字体(Font对象)
字体名称:Font.Name = "华文行楷"
字形: Font.FontStyle = "常规"
字号:Font.Size = "10"
下划线:Font.Strikethrough = True; Font.Underline = etUnderlineStyleDouble ---双下划线
上标:Font.Superscript = True
下 标:Font.SubScript = True
删除线:Font.OutlineFont = True

2.3 边框(Borders对象)

Borders.Item(etEdgeTop):上边框
Borders.Item(etEdgeLeft):左边框
Borders.Item (etEdgeRight):右边框
Borders.Item(etEdgeBottom):下边框
Borders.Item(etDiagonalDown) :左上--右下边框
Borders.Item(etDiagonalUp):左下--右上边框
Border.LineStyle = etContinuous 线条样式

 

 

 

 

 

参考博文

1. HerbertC# Excel 行高,列宽,合并单元格,单元格边框线,冻结

2. zhpingyun008C#设置EXCEL单元格格式.

 

没有整理与归纳的知识,一文不值!高度概括与梳理的知识,才是自己真正的知识与技能。 永远不要让自己的自由、好奇、充满创造力的想法被现实的框架所束缚,让创造力自由成长吧! 多花时间,关心他(她)人,正如别人所关心你的。理想的腾飞与实现,没有别人的支持与帮助,是万万不能的。






  本文转自wenglabs博客园博客,原文链接:http://www.cnblogs.com/arxive/p/5794490.html,如需转载请自行联系原作者

相关文章
|
8天前
|
SQL C# 数据库
EPPlus库的安装和使用 C# 中 Excel的导入和导出
本文介绍了如何使用EPPlus库在C#中实现Excel的导入和导出功能。首先,通过NuGet包管理器安装EPPlus库,然后提供了将DataGridView数据导出到Excel的步骤和代码示例,包括将DataGridView转换为DataTable和使用EPPlus将DataTable导出为Excel文件。接着,介绍了如何将Excel数据导入到数据库中,包括读取Excel文件、解析数据、执行SQL插入操作。
EPPlus库的安装和使用 C# 中 Excel的导入和导出
|
3月前
|
数据格式 Python
【Python】已解决:Excel无法打开文件test.xIsx“,因为文件格式或文件扩展名无效。请确定文件未损坏,并且文件扩展名与文件的格式匹配。
【Python】已解决:Excel无法打开文件test.xIsx“,因为文件格式或文件扩展名无效。请确定文件未损坏,并且文件扩展名与文件的格式匹配。
176 0
|
27天前
|
关系型数据库 数据库 PostgreSQL
在C#中获取与设置Windows的字符编码方式
通过以上步骤,你可以在Docker环境下有效地重启PostgreSQL服务。这对于维护数据库健康、应用更新或环境配置更改后确保数据库服务正常运行至关重要。根据你的具体需求和环境设置,选择合适的方法来执行重启操作。
11 0
|
2月前
|
开发工具 开发者
Excel 2016 VBA 提取单元格的中文字符
Excel 2016 VBA 提取单元格的中文字符
17 1
|
2月前
|
文字识别 C# Python
使用C#将几个Excel文件合并去重分类
使用C#将几个Excel文件合并去重分类
25 3
|
2月前
Excel 条件格式
Excel 条件格式
25 0
|
2月前
|
开发框架 算法 .NET
C#使用MiniExcel导入导出数据到Excel/CSV文件
C#使用MiniExcel导入导出数据到Excel/CSV文件
48 0
|
3月前
|
存储 开发工具 git
好的git管理方法,标明项目_编号_(功能,不过还是在没有bug出现时就提交为好)+Excel表管理的格式
好的git管理方法,标明项目_编号_(功能,不过还是在没有bug出现时就提交为好)+Excel表管理的格式
|
5月前
|
开发框架 前端开发 .NET
C#编程与Web开发
【4月更文挑战第21天】本文探讨了C#在Web开发中的应用,包括使用ASP.NET框架、MVC模式、Web API和Entity Framework。C#作为.NET框架的主要语言,结合这些工具,能创建动态、高效的Web应用。实际案例涉及企业级应用、电子商务和社交媒体平台。尽管面临竞争和挑战,但C#在Web开发领域的前景将持续拓展。
169 3
|
5月前
|
SQL 开发框架 安全
C#编程与多线程处理
【4月更文挑战第21天】探索C#多线程处理,提升程序性能与响应性。了解C#中的Thread、Task类及Async/Await关键字,掌握线程同步与安全,实践并发计算、网络服务及UI优化。跟随未来发展趋势,利用C#打造高效应用。
181 3