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;
            }
        }
    }
}
相关文章
C#写入模板excel数据
C#写入模板excel数据
89 0
|
9月前
|
C#
C# 创建Excel并写入内容
C# 创建Excel并写入内容
591 0
|
C#
c# 导出数据到Excel模板
最近在做一个发邮件的功能,客户要求需要导出一个Excel附件,并给了附件的格式, eg: Last Name 姓 First Name 名 Chinese Characters汉字书写(仅大陆人填写)               实现方式有两种: 一、使用Microsoft.
1612 0
|
7月前
|
JSON JavaScript 数据格式
vue 电子表格Excel的上传导入、导出下载、读取本地Excel、json转Excel
vue 电子表格Excel的上传导入、导出下载、读取本地Excel、json转Excel
483 0
|
easyexcel
根据指定Excel模板填充导出数据
根据Excel模板填充优先推荐阿里的EasyExcel,github地址:https://github.com/alibaba/easyexcel。
|
存储
有关使用Excel读取用户上传模板问题
有关使用Excel读取用户上传模板问题
108 0
|
JSON 前端开发 数据格式
给我实现一个前端的 Excel 导入和导出功能(二)
给我实现一个前端的 Excel 导入和导出功能
272 0
|
JSON 前端开发 BI
给我实现一个前端的 Excel 导入和导出功能(一)
给我实现一个前端的 Excel 导入和导出功能
298 0

热门文章

最新文章