C#使用NPOI读取模板生成EXCEL
C#使用NPOI读取模板生成EXCEL
string currentDirectory = System.AppDomain.CurrentDomain.BaseDirectory;
// 读取Excel模板文件
FileStream fs = new FileStream(currentDirectory + "BoxPackinglist.xlsx", FileMode.Open, FileAccess.Read);
XSSFWorkbook workbook = new XSSFWorkbook(fs);
//模板中的sheet页
ISheet sheetTemp = workbook.GetSheet("Sheet1");
#region 创建sheet
sheetTemp.CopySheet(“新sheet页名字”);
ISheet sheet = workbook.GetSheet(“新sheet页名字”);
#endregion
#region 写入数据
sheet.GetRow(0).GetCell(0).SetCellValue("Packinglist ");
sheet.GetRow(4).GetCell(7).SetCellValue("N.W 总净重 :" + item.netweightsum + "KG");
sheet.GetRow(4).GetCell(10).SetCellValue("G.W 总毛重:" + item.grossweightsum + "KG");
#endregion
//开始插入行索引从第八行开始复制插入行(带格式)
int startRow = 8;
//插入5行
sheet.ShiftRows(startRow, sheet.LastRowNum, 5, true, false);
for (int row = startRow - 1; row < startRow + 4; row++)
{
if(row >= startRow)
{
var rowSource = sheet.GetRow(7);
var rowStyle = rowSource.RowStyle;//获取当前行样式
var rowInsert = sheet.CreateRow(row);
if (rowStyle != null)
rowInsert.RowStyle = rowStyle;
rowInsert.Height = rowSource.Height;
for (int col = 0; col < rowSource.LastCellNum; col++)
{
var cellsource = rowSource.GetCell(col);
var cellInsert = rowInsert.CreateCell(col);
var cellStyle = cellsource.CellStyle;
//设置单元格样式
if (cellStyle != null)
cellInsert.CellStyle = cellsource.CellStyle;
}
}
}
workbook.RemoveSheetAt(0);
// 保存文件并关闭FileStream
fs.Close();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
workbook.Write(baos);
byte[] bt = baos.ToByteArray();
string base64Str = Convert.ToBase64String(bt);
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统