zoukankan      html  css  js  c++  java
  • 使用NPOI导入Excel注意日期格式和数字格式

    //使用NPOI导入Excel
        public static DataTable importExcelToDataSetUsingNPOI(string FilePath, string fileName)
        {
            DataSet myDs = new DataSet();
            DataTable dt = new DataTable("mytable");
    
            myDs.Tables.Add(dt);
            DataRow myRow;
            myDs.Clear();
    
            try
            {
                using (Stream stream = new FileStream(FilePath, FileMode.Open, FileAccess.Read))
                {
                    HSSFWorkbook wk = new HSSFWorkbook(stream);
    
                    ISheet sheet = wk.GetSheetAt(0);   //读取当前表数据 只读取第一个sheet
    
                    int rowsint = sheet.LastRowNum;
                    for (int y = 0; y <= rowsint; y++)
                    {
                        //Execel第一行是标题,不是要导入数据库的数据
                        IRow row = sheet.GetRow(y);  //读取当前行数据
                        if (row != null)
                        {
                            int columnsint = row.LastCellNum;
                            if (y == 0)//第一行,标题
                            {
                                for (int m = 0; m < columnsint; m++)
                                {
                                    dt.Columns.Add("F" + m.ToString(), System.Type.GetType("System.String"));
                                }
                            }
                            else
                            {
                                myRow = myDs.Tables["mytable"].NewRow();
                                for (int j = 0; j < columnsint; j++)
                                {
                                    if (j == 11)
                                    {
                                        
                                    }
                                    if (row.GetCell(j).CellType == CellType.NUMERIC)//数字类型
                                    {
                                        string columnname = "F" + j.ToString();
                                        if (DateUtil.IsValidExcelDate(row.GetCell(j).NumericCellValue) && DateUtil.IsCellDateFormatted(row.GetCell(j)))
                                        {
                                            DateTime D = row.GetCell(j).DateCellValue;
                                            myRow[columnname] = (D.ToString().Length == 0 || D.ToString().Contains("#")) ? " " : D.ToString();
                                        }
                                        else
                                        {
                                            double strValue = row.GetCell(j).NumericCellValue;
                                            myRow[columnname] = (strValue.ToString().Length == 0 || strValue.ToString().Contains("#")) ? " " : strValue.ToString();
                                        }
                                    }
                                    else
                                    {
                                        string strValue = row.GetCell(j).StringCellValue;
                                        string columnname = "F" + j.ToString();
                                        myRow[columnname] = (strValue.Length == 0 || strValue.Contains("#")) ? " " : strValue;
                                    }
                                }
                                try
                                {
                                    myDs.Tables["mytable"].Rows.Add(myRow);
                                }
                                catch { }
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex.Message);
            }
            return myDs.Tables["mytable"];
        }
  • 相关阅读:
    PHP开发调试环境配置(基于wampserver+Eclipse for PHP Developers )
    关于汽车
    PCB 敷铜间距规则(转)
    有同感的话
    kubernetes学习之二进制部署1.16
    kubernetes网络之Flannel
    Kubernetes学习之原理
    Kubernetes学习之基础概念
    Centos7配置Grafana对接OpenLDAP
    Centos7安装OpenLDAP
  • 原文地址:https://www.cnblogs.com/kennyliu/p/4554617.html
Copyright © 2011-2022 走看看