• winfrom大数据导入excel


    最近由于项目的需要 需要从excel里面导入大量数据   网上找了很久  都没有找到一个好的方法  直到。。。。。。。。  不多说  直接上代码

    using System.Collections.Generic;
    using NPOI.HSSF.UserModel;
    using NPOI.SS.UserModel;
    using NPOI.XSSF.UserModel;
    using System.IO;
    using System.Data;
    using System;
         private void button10_Click(object sender, EventArgs e)
            {
                npoiWorkBook = null;
                OpenFileDialog file = new OpenFileDialog();
                if (file.ShowDialog() == DialogResult.OK)
                {
                    string filePath = file.FileName;
                    FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
                    StreamReader sr = new StreamReader(fs);
                    if (filePath.Contains(".xlsx"))
                        npoiWorkBook = new XSSFWorkbook(fs);
                    else
                        npoiWorkBook = new HSSFWorkbook(fs);
                }
                else { return; }
                ExcelHelper excel = new ExcelHelper(npoiWorkBook);
    //遍历第几个sheet(2就表示遍历sheet1 ,1就表示从第一行开始) DataTable dataTable
    = excel.ExportExcelToDataTable(2, 1); int rowCount = dataTable.Rows.Count;//总行数 Thread td = new Thread(new ThreadStart(delegate { foreach (DataRow row in dataTable.Rows) { using (NewContext context = new NewContext()) { try { string stationCode = row["站址编码"].ToString(); if (string.IsNullOrWhiteSpace(stationCode)) continue; var station = context.Station.FirstOrDefault(o => o.StationCode == stationCode); if (station == null) { station = new Station() { BuildType = GetBType(row["xxxx"].ToString()), City = "xxxx", County = row["所属区域"].ToString().Trim(), CreateTime = DateTime.Now, CrmOrderCode = "未知", MobileIsShare = row["xxxx"].ToString().Contains("xx"), UnicomIsShare = row["xxxx"].ToString().Contains("xx"), TelecomIsShare = row["xxxx"].ToString().Contains("xx"), PROperator = GetPR(row["xxxx"].ToString()), Remark = "", ShareType = row["xxxx"].ToString().Contains("x") ? 1 : 2, StationCode = row["xxxx"].ToString(), StationName = row["xxxx"].ToString(), }; context.Station.Add(station); } } catch (Exception) { throw; } context.SaveChanges(); } } })); td.Start(); }
           
    //查询遍历第几个sheet 返回DataTable

    public DataTable ExportExcelToDataTable(int sheetIndex, int satartNum) { return ExportToDataTable(_IWorkbook.GetSheetAt(sheetIndex - 1), satartNum); }
    
    
    
     
  • 相关阅读:
    __cdecl, __stdcall, __fastcall,__pascal调用区别
    Windows Hook原理与实现
    C语言四大存储区域总结
    MFC DestroyWindow、OnDestroy、OnClose 程序关闭相关
    VC++动态链接库DLL编程深入浅出"
    windows 安全模型简介
    获取当前焦点窗口进程名
    获取IE URL
    DLL编写中extern “C”和__stdcall的作用
    Django2支持跨域方法
  • 原文地址:https://www.cnblogs.com/chunxiong/p/7614071.html
Copyright © 2020-2023  润新知