zoukankan      html  css  js  c++  java
  • 使用OLEDB读取excel和csv文件

    这是我第一次在博客上写东西,简单的为大家分享一个oledb读取文件的功能吧,这两天在做一个文件导入数据库的小demo,就想着导入前先在页面上展示一下,之前调用Microsoft.Office.Interop.*.dll的组件,代码看起来很是冗余,于是乎选择了这种方式,添加引用 using System.Data.OleDb;代码分享给大家,有什么不足或补充,希望大家多多发言,共同进步哈!

      /// <summary>
            /// 使用OLEDB读取excel和csv文件
            /// </summary>
            /// <param name="path">文件所在目录地址</param>
            /// <param name="name">文件名</param>
            /// <returns></returns>
            public static DataSet ReadFile(string path, string name)
            {
                if (string.IsNullOrWhiteSpace(path) || string.IsNullOrWhiteSpace(name) || !File.Exists(path+name))
                    return null;
                // 读取excel 
                string connstring = string.Empty;
                string strSql = string.Empty;
                if (name.EndsWith(".xls") || name.EndsWith(".xlsx"))
                {
                    connstring = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path + name + ";Extended Properties='Excel 8.0;HDR=YES;IMEX=1';";
                    strSql = "select * from [sheet1$]";
                }
                // 读取csv文件
                else if (name.EndsWith(".csv"))
                {
                    connstring = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path + ";Extended Properties='text;HDR=YES;FMT=Delimited';";
                    strSql = "select * from " + name;
                }
                else
                {
                    return null;
                }
                DataSet ds = null;
                OleDbConnection conn = null;
                try
                {
                    conn = new OleDbConnection(connstring);
                    conn.Open();
                    OleDbDataAdapter myCommand = null;
    
                    myCommand = new OleDbDataAdapter(strSql, connstring);
                    ds = new DataSet();
                    myCommand.Fill(ds, "table1");
                }
                catch (Exception e)
                {
                    throw e;
                }
                finally
                {
                    conn.Close();
                }
                return ds;
            }
  • 相关阅读:
    又见JavaWeb的中文乱码
    Java 中文字符串编码之GBK转UTF-8
    关于Java项目打包
    FreeSWITCH无法读取wav文件
    CentOS 7 最小化安装的网络配置
    虚拟机无法使用网卡桥接模式
    阿里云建站流程
    Spring MVC无法获取ajax POST的参数和值
    Mysql ERROR 1064 (42000)
    eclipse创建java类时自动添加注释
  • 原文地址:https://www.cnblogs.com/qq-602904354/p/3320787.html
Copyright © 2011-2022 走看看