服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - C# - C#利用NPOI操作Excel(单元格设置)

C#利用NPOI操作Excel(单元格设置)

2023-02-09 15:27出征的企鹅 C#

这篇文章主要为大家详细介绍了C#利用NPOI操作Excel实现单元格设置,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了C#利用NPOI操作Excel的单元格设置,供大家参考,具体内容如下

一.合并单元格

NOPI支持对单元格进行合并,还有单元格格式设置!

注意:

在进行单元格合并时必须先创建单元格

1.合并单元格语句:

?
1
2
sheet.AddMergedRegion(new CellRangeAddress(0, 0, 0, 3));
//起始行,终止行,起始列,终止列

2.设置单元格格式:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
ICellStyle cellStyle = wk.CreateCellStyle();  //首先建单元格格式
  //设置单元格上下左右边框线
            cellStyle.BorderTop = NPOI.SS.UserModel.BorderStyle.Hair;  //虚线
cellStyle.BorderBottom = NPOI.SS.UserModel.BorderStyle.Thick;//粗线  
cellStyle.BorderLeft = NPOI.SS.UserModel.BorderStyle.Double;//双线  
cellStyle.BorderRight = NPOI.SS.UserModel.BorderStyle.Thin;//细线  
//文字水平和垂直对齐方式  
cellStyle.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Left;  
cellStyle.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Top;  
//是否换行  
//cellStyle.WrapText = true;  //若字符串过大换行填入单元格
//缩小字体填充  
cellStyle.ShrinkToFit = true;//若字符串过大缩小字体后填入单元格
//新建一个字体样式对象
IFont font = wk.CreateFont();
//设置字体加粗样式
font.Boldweight = short.MaxValue;
ICell MyCell = sheet.CreateRow(1).CreateCell(1);//创建单元格
     
MyCell.CellStyle = cellStyle;//赋给单元格   “刚才所创建的单元格格式”

源码:

?
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
86
87
88
89
90
91
92
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using NPOI;
using NPOI.XSSF.UserModel;
using NPOI.SS.UserModel;
using NPOI.HSSF.UserModel;
using NPOI.HSSF.Util;
using NPOI.SS.Util;
namespace Excel5
{
    class Program
    {
        static void Main(string[] args)
        {
            XSSFWorkbook wk = new XSSFWorkbook();
            /*ISheet sheet = wk.CreateSheet("例子");
            ICellStyle cellStyle = wk.CreateCellStyle();  
//设置单元格上下左右边框线  
            cellStyle.BorderTop = NPOI.SS.UserModel.BorderStyle.Hair;  //虚线
cellStyle.BorderBottom = NPOI.SS.UserModel.BorderStyle.Thick;//粗线  
cellStyle.BorderLeft = NPOI.SS.UserModel.BorderStyle.Double;//双线  
cellStyle.BorderRight = NPOI.SS.UserModel.BorderStyle.Thin;//细线  
//文字水平和垂直对齐方式  
cellStyle.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Left;  
cellStyle.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Top;  
//是否换行  
//cellStyle.WrapText = true;  //若字符串过大换行填入单元格
//缩小字体填充  
cellStyle.ShrinkToFit = true;//若字符串过大缩小字体后填入单元格
//新建一个字体样式对象
IFont font = wk.CreateFont();
//设置字体加粗样式
font.Boldweight = short.MaxValue;
ICell MyCell = sheet.CreateRow(1).CreateCell(1);
ICell MyCell2 = sheet.CreateRow(0).CreateCell(1);
 
         
MyCell.CellStyle = cellStyle;
//MyCell.SetCellValue("测试格式效果");
 
            using (FileStream fileStream = File.Open("d:\\pratice3.xlsx",  
            FileMode.OpenOrCreate, FileAccess.ReadWrite))  
            {  
            wk.Write(fileStream);  
            fileStream.Close();  
            }  */
 
            //创建一个Sheet  
            ISheet sheet = wk.CreateSheet("例子");
 
            //在第一行创建行
            IRow row = sheet.CreateRow(0);
            //在第一行的第一列创建单元格
            for (int i = 0; i < 10; i++)
            {
                ICell cell = row.CreateCell(i);
                if((i)%4==0)
                row.CreateCell(i).SetCellValue("测试");
            }
            
            sheet.AddMergedRegion(new CellRangeAddress(0, 0, 0, 3));//起始行,终止行,起始列,终止列
           
            
           
            //row.CreateCell(0).SetCellValue("合并单元格");
            using (FileStream fs = File.OpenWrite("d:\\pratice1.xlsx"))
            {
                wk.Write(fs);//向打开的这个xls文件中写入并保存。
            }
            //上一篇教程中生成的文件  
            string Address = "d:\\pratice1.xlsx"; //指明路径 
            XSSFWorkbook wk2 = null;
            using (FileStream fs = File.Open(Address, FileMode.Open,  
            FileAccess.Read, FileShare.ReadWrite))  
            {  
            //把xlsx文件读入workbook变量里,之后就可以关闭了  
            wk2 = new XSSFWorkbook(fs);     
            fs.Close();  
            }
            using (FileStream fileStream = File.Open("d:\\pratice1.xlsx",  
            FileMode.OpenOrCreate, FileAccess.ReadWrite))  
            {  
            wk2.Write(fileStream);  
            fileStream.Close();  
            }  
 
            Console.WriteLine("OK");
            Console.ReadKey();
        }

这是两部分代码,由注释分开了,再测试的时候进行自己调整!

注意:

单元格在进行合并时,会默认保存左上角的值!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:https://blog.csdn.net/zjw1604080128/article/details/83044540

延伸 · 阅读

精彩推荐
  • C#C#使用SQL DataAdapter数据适配代码实例

    C#使用SQL DataAdapter数据适配代码实例

    今天小编就为大家分享一篇关于C#使用SQL DataAdapter数据适配代码实例,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟...

    Czhenya9732022-03-03
  • C#.net2.0+ Winform项目实现弹出容器层

    .net2.0+ Winform项目实现弹出容器层

    在实际工作中,如果能像菜单一样弹出自定义内容,会方便很多,比如查询时,比如下拉列表显示多列信息时,比如在填写某个信息需要查看一些信息树时...

    ahdung4882021-10-21
  • C#C#用Topshelf创建Windows服务的步骤分享

    C#用Topshelf创建Windows服务的步骤分享

    这篇文章主要给大家介绍了关于C#如何利用Topshelf创建Windows服务的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用C#具有一定的参考学习...

    缥缈的尘埃7372022-09-07
  • C#详解C#中HashTable的用法

    详解C#中HashTable的用法

    在.NET Framework中,Hashtable是System.Collections命名空间提供的一个容器,用于处理和表现类似keyvalue的键值对,其中key通常可用来快速查找,同时key是区分大小写...

    放飞理想11072021-11-14
  • C#C#添加、读取Word脚注尾注的方法

    C#添加、读取Word脚注尾注的方法

    这篇文章主要为大家详细介绍了C#添加、读取Word脚注尾注的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    E-iceblue10752022-02-24
  • C#Unity实现聊天室功能

    Unity实现聊天室功能

    这篇文章主要为大家详细介绍了Unity实现聊天室功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    双鱼-布衣3922022-11-07
  • C#在C#中根据HardwareID获取驱动程序信息的实现代码

    在C#中根据HardwareID获取驱动程序信息的实现代码

    这篇文章主要介绍了C#中根据HardwareID获取驱动程序信息的实现代码,需要的朋友可以参考下...

    C#教程网5372021-12-10
  • C#简述C#枚举高级战术

    简述C#枚举高级战术

    这篇文章主要介绍了简述C#枚举高级战术,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小...

    精致码农 • 王亮11092022-10-11