using NPOI.SS.UserModel;
using NPOI.XSSF.UserModel;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using Microsoft.Office.Interop.Excel;
namespace BatchService.Framework.Utility
{
///
/// Exl坐标
///
public class TableValue
{
//行号
public int GetRow { get; set; }
//列号
public int GetCell { get; set; }
//坐标值
public string GetValue { get; set; }
}
public class NPOIExcel
{
///
/// 修改excel数据
///
/// excel路径
/// excel表单
/// 修改集合
public static void UpdeteExcel(string outputFile, string sheetname, List list)
{
LogHelper.Debug("UpdeteExcel修改方法");
try
{
FileStream readfile = new FileStream(outputFile, FileMode.Open, FileAccess.Read);
XSSFWorkbook hssfworkbook = new XSSFWorkbook(readfile);
ISheet sheet1 = hssfworkbook.GetSheet(sheetname);
for (int i = 0; i < list.Count; i++)
{
try
{
sheet1.GetRow(list[i].GetRow).GetCell(list[i].GetCell).SetCellValue(list[i].GetValue);
}
catch (Exception ex)
{
LogHelper.Debug(ex.Message);
// wl.WriteLogs(ex.ToString());
throw;
}
}
try
{
readfile.Close();
FileStream writefile = new FileStream(outputFile, FileMode.Create, FileAccess.Write);
hssfworkbook.Write(writefile);
writefile.Close();
}
catch (Exception ex)
{
LogHelper.Debug(ex.Message);
// wl.WriteLogs(ex.ToString());
}
}
catch (Exception ex)
{
LogHelper.Debug("初始化失败");
LogHelper.Debug(ex.Message.ToString());
}
}
///
/// 返回修改后的Exl工作表
///
/// 摸版路径
/// 修改坐标值
/// 返回修改后的工作表
public static XSSFWorkbook GetExcelValue(string TempletFileName, string Sheetnub, List TableValues)
{
//返回工作表
XSSFWorkbook hssfworkbook=null;
//打开摸版文件
using (FileStream file = new FileStream(TempletFileName, FileMode.Open, FileAccess.Read))
{
hssfworkbook = new XSSFWorkbook(file);
file.Close();
}
//获取摸版表单的对象
XSSFSheet ws = (XSSFSheet)hssfworkbook.GetSheet(Sheetnub);
//赋值表单
if (TableValues != null && TableValues.Count > 0)
{
int x = 0;
TableValues.ForEach(Call =>
{
x += 1;
if (Call.GetValue==null)
{
ws.GetRow(Call.GetRow).GetCell(Call.GetCell).SetCellValue("");
}
else
{
ws.GetRow(Call.GetRow).GetCell(Call.GetCell).SetCellValue(Call.GetValue);
}
});
}
return hssfworkbook;
}
}
}