ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

NPOI操作excel

2019-03-28 14:48:23  阅读:284  来源: 互联网

标签:code string int hssfworkbook excel NPOI new 操作 dt


导入excel表格,数据转datetable,存入数据库

1.引入dll文件
在这里插入图片描述
工具—nuget包管理器—搜索
在程序包管理器控制台输入Install-Package NPOI -Version 2.0.6
2.转datetable

  public int uploadFile(HttpFileCollection files, string path)
        {
            string code = "";
            string name = "";
            string prepath = "/excelfile/";//存文件的文件夹
            ////添加评估文件
            string filename;
            string savepath;

            foreach (string key in files.AllKeys)
            {
                IWorkbook hssfworkbook = null;
                // HSSFWorkbook hssfworkbook;
                HttpPostedFile file = files[key];
                //判断文件是否为空
                if (file.ContentLength > 0)
                {
                    filename = Guid.NewGuid().ToString() + "$" + file.FileName;//给文件重命名
                    string ext = Path.GetExtension(file.FileName);//获取文件后缀名
                    savepath = path + filename + ext;
                    file.SaveAs(savepath);//存入
                    using (FileStream filestream = new FileStream(savepath, FileMode.Open, FileAccess.Read))
                    {
                        if (ext.ToLower() == ".xlsx")
                        {
                            hssfworkbook = new XSSFWorkbook(filestream);
                        }
                        else if (ext.ToLower() == ".xls")
                        {
                            hssfworkbook = new HSSFWorkbook(filestream);
                        }

                    }
                    //ISheet  sheet = hssfworkbook.GetSheet(filename);
                    ISheet sheet = hssfworkbook.GetSheetAt(0);
                    DataTable dt = ExcelHelper.RenderDataTableFromExcel(hssfworkbook, sheet.SheetName, 0);
                    ////////
                    //string prefix = "insert into a (HeadImg,IDNumber) values";
                    StringBuilder sb = new StringBuilder();
                    int count = dt.Rows.Count;//总数
                    int row = (count / 100) + 1;//分组数
                    for (int i = 0; i < row; i++)
                    {
                        int temp = 100;
                        if (i == row - 1)
                        {
                            temp = count % 100;
                        }
                        for (int j = 0; j < temp; j++)
                        {
                            code = dt.Rows[(i * 100) + j]["HeadImg"].ToString();
                            name = dt.Rows[(i * 100) + j]["IDNumber"].ToString();
                            sb.Append("('" + code + "','" + name + "'),");
                        }
                        //String sql = prefix + sb.Remove(sb.Length - 1, 1);
                        int hang = InsetData(code, name);
                        return hang;
                        //SqlHelper.Curtsql(sql);
                        //sb = new StringBuilder();
                    }
                }
                else
                {

                }
            }

            return 1;

        }

3.存库(用于ef)

 public int InsetData(string code, string name)
        {
            var context = new  ...Entities();
            SqlConnection conn = context.Database.Connection as SqlConnection;
            conn.Open();
            var cmd = (conn).CreateCommand();
            cmd.CommandText = "sql语句'";
            SqlDataReader dr = cmd.ExecuteReader();
            DataTable dt = new DataTable();
            dt.Load(dr);
            return cmd.ExecuteNonQuery();
        }

4.遇到的问题
我这里会报程序集错误,因为dll版本问题,移除重新引入新版本

标签:code,string,int,hssfworkbook,excel,NPOI,new,操作,dt
来源: https://blog.csdn.net/weixin_42411608/article/details/88868425

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有