1. 首先下载 NPIO 包:
我使用的包和文档下载地址:
链接:https://pan.baidu.com/s/1gApUu5n4KKfHSmIrZLaUaw
提取码:cu48
2.引入包,如下所示:
3. 操作EXCEL 的代码实例:
仿照别人写的,有问题请留言。
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using NPOI.HSSF; //应用于2007以前的 lsx00000000
using NPOI.XSSF; //应用于2007以后额 xlsx
using NPOI.XSSF.UserModel;
using NPOI.SS.UserModel;
using NPOI.SS.Util;
using NPOI.XWPF;
using NPOI.HPSF;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
//新建Excel
XSSFWorkbook workbook = new XSSFWorkbook();
//新建Sheet表
XSSFSheet sheet = (XSSFSheet)workbook.CreateSheet("Sheet1");
//新建单元格 10*10
for (int i=0;i<10;i++) {
IRow row= sheet.CreateRow(i);
for (int j=0;j<10;j++) {
SetStyle( workbook, row.CreateCell(j));
}
}
//合并单元格并设置表头
List<string> headlist = new List<string>();
headlist.Add("语文");
headlist.Add("数学");
headlist.Add("英语");
headlist.Add("政治");
sheet.AddMergedRegion(new CellRangeAddress (0,0,1,4));
sheet.GetRow(0).GetCell(1).SetCellValue("课程"); //给单元格设置值
//给表写入表头
for (int i=0;i<headlist.Count;i++) {
sheet.GetRow(1).GetCell(i + 1).SetCellValue(headlist[i]);
}
//写入数据
List<string> namelist = new List<string>();
namelist.Add("张三");
namelist.Add("李四");
namelist.Add("王五");
namelist.Add("赵六");
namelist.Add("钱七");
namelist.Add("朱一");
//合并单元格
sheet.AddMergedRegion(new CellRangeAddress (0,1,0,0)); //起始行,结束行,起始列,结束列
sheet.GetRow(0).GetCell(0).SetCellValue("姓名");
//设置名字
for (int i =0;i<namelist.Count;i++) {
sheet.GetRow(i + 2).GetCell(0).SetCellValue(namelist[i]);
}
//写入数据
for (int i = 0; i < namelist.Count ; i++) {
for (int j=0;j<headlist.Count;j++) {
sheet.GetRow(i + 2).GetCell(j+1).SetCellValue(j*10);
}
}
//用文件流写入
FileStream stream = new FileStream(@"C:\Users\SSR\Desktop\Test.xlsx", FileMode.Create);
workbook.Write(stream);
stream.Close(); //关闭流
workbook.Close(); //关闭Excel 工作簿
}
//设置Excle 的样式
static void SetStyle(XSSFWorkbook workbook, ICell cell) {
//设置单元格的样式
XSSFCellStyle style = (XSSFCellStyle)workbook.CreateCellStyle();
style.Alignment = HorizontalAlignment.Center; //水平 居中对齐
style.VerticalAlignment = VerticalAlignment.Center; //垂直居中对齐
style.WrapText = true; //自动换行
//设置单元格的边框,默认黑色
style.BorderTop = BorderStyle.Thin;
style.BorderBottom = BorderStyle.Thin;
style.BorderLeft = BorderStyle.Thin;
style.BorderRight = BorderStyle.Thin;
//设置单元格字体颜色
XSSFFont font = (XSSFFont)workbook.CreateFont();
font.FontName = "微软雅黑"; //字体
font.FontHeightInPoints = 18;
font.Color = IndexedColors.Red.Index;
style.SetFont(font); //设置的字体样式赋给 style
cell.CellStyle = style; //把 style 赋给 Cellstyle,不赋值就就没有任何效果
}
}
}