C#写入模板excel数据

简介: C#写入模板excel数据
        public ReturnNode exportReviewResult()
        {
            List<ReplaceExcelData> repData = new List<ReplaceExcelData>();
            repData.Add(new ReplaceExcelData(3, 2, "名称1"));
            repData.Add(new ReplaceExcelData(3, 7, "单位1"));
            repData.Add(new ReplaceExcelData(3, 14, "单位1"));
            string fileName = DateTime.Now.ToString("yyyyMMddHHmmss") + ".xlsx";
            string tempFileName = localPath + "exporttemp.xlsx";
            string newFile = localPath + fileName;
            using (ExcelHelper excelHelper = new ExcelHelper(newFile))
            {
                excelHelper.ReplaceDataToExcel(tempFileName,0, repData);
                return ReturnNode.ReturnSuccess(fileName);
            }
        }
using NPOI.HSSF.UserModel;
using NPOI.SS.UserModel;
using NPOI.XSSF.UserModel;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace YFAPICommon.Libs
{
    public class ReplaceExcelData
    {
        public int rowIndex { set; get; }
        public int cellIndex { set; get; }
        public object value { set; get; }
        public ReplaceExcelData(int _row,int _cell,object _value)
        {
            this.rowIndex = _row;
            this.cellIndex = _cell;
            this.value = _value;
        }
    }
    class ExcelHelper : IDisposable
    {
        private string fileName = null; //文件名
        private NPOI.SS.UserModel.IWorkbook workbook = null;
        private FileStream fs = null;
        private bool disposed;
        public ExcelHelper(string fileName)
        {
            this.fileName = fileName;
            disposed = false;
        }
        public int ReplaceDataToExcel(string tempFilePath,int sheetIndex,List<ReplaceExcelData> replaceData)
        {
            int count = 0;
            ISheet sheet = null;
            fs = new FileStream(fileName, FileMode.OpenOrCreate, FileAccess.ReadWrite);
            using (FileStream tempfs = new FileStream(tempFilePath, FileMode.Open, FileAccess.Read))
            {
                if (fileName.IndexOf(".xlsx") > 0) // 2007版本
                    workbook = new XSSFWorkbook(tempfs);
                else if (fileName.IndexOf(".xls") > 0) // 2003版本
                    workbook = new HSSFWorkbook(tempfs);
            }
            try
            {
                if (workbook != null)
                {
                    sheet = workbook.GetSheetAt(sheetIndex);
                }
                else
                {
                    return -1;
                }
                foreach(var node in replaceData)
                {
                    var row = sheet.GetRow(node.rowIndex);
                    var valuestr = node.value.ToString();
                    double valDouble = 0;
                    if(double.TryParse(valuestr,out valDouble))
                    {
                        row.GetCell(node.cellIndex).SetCellValue(valDouble);
                    }
                    else
                    {
                        row.GetCell(node.cellIndex).SetCellValue(valuestr);
                    }
                    count++;
                }
                workbook.Write(fs); //写入到excel
                return count;
            }
            catch (Exception ex)
            {
                Console.WriteLine("Exception: " + ex.Message);
                return -1;
            }
        }
    }
}
相关文章
|
1月前
|
C# 数据库
c# dev Form1 gridview1使用Form2 gridview1的数据
c# dev Form1 gridview1使用Form2 gridview1的数据
|
1月前
|
SQL 缓存 easyexcel
面试官问10W 行级别数据的 Excel 导入如何10秒处理
面试官问10W 行级别数据的 Excel 导入如何10秒处理
178 0
|
5天前
|
C#
C#NPOI操作Excel详解
C#NPOI操作Excel详解
9 0
|
5天前
|
C#
C# 创建Excel并写入内容
C# 创建Excel并写入内容
8 0
|
5天前
|
XML 存储 开发框架
c#教你网站数据轻松解析抓取,HtmlAgilityPack解析的奇妙之处
c#教你网站数据轻松解析抓取,HtmlAgilityPack解析的奇妙之处
8 0
|
7天前
|
存储 API C#
C# 实现格式化文本导入到Excel
C# 实现格式化文本导入到Excel
|
7天前
|
SQL 存储 开发框架
C# DataSet结合FlyTreeView显示树状模型数据
C# DataSet结合FlyTreeView显示树状模型数据
|
16天前
|
Java Apache
java读取excel数据案例
Java代码示例使用Apache POI库读取Excel(example.xlsx)数据。创建FileInputStream和XSSFWorkbook对象,获取Sheet,遍历行和列,根据单元格类型(STRING, NUMERIC, BOOLEAN)打印值。需引入Apache POI库并确保替换文件路径。
11 1
|
1月前
|
C#
C# gridControl 导出Excel
C# gridControl 导出Excel