zoukankan      html  css  js  c++  java
  • 使用oledb访问excel文件

    操作方法吧excel当成数据库就行了。sheet就是表!然后写sql 语句,create table ..insert into ,update ,select ..whaterver..

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Data.OleDb;
    using System.Data;
    using System.IO;
    namespace Utils
    {
        
    public class OLEDBExcelHelper
        {
            
    public static void ExcuteNonQuery(string filePath, string sql)
            {
                
    using(OleDbConnection conn = new OleDbConnection(GetConnectionString(filePath)));
                {
                    OleDbCommand cmd 
    = conn.CreateCommand();
                    cmd.CommandText 
    = sql;

                    conn.Open();
                    cmd.ExecuteNonQuery();
                    conn.Close();
                }
            }
            
    public static void BatchExcuteNonQuery(string filePath, IList<string> sqlList)
            {
                
    using (OleDbConnection conn = new OleDbConnection(GetConnectionString(filePath)))
                {
                    OleDbCommand cmd 
    = conn.CreateCommand();
                    conn.Open();
                    
    foreach (var sql in sqlList)
                    {
                        cmd.CommandText 
    = sql;
                        cmd.ExecuteNonQuery();
                    }
                }
            }
            
    public static string GetConnectionString(string filePath)
            {
                
    if (filePath.EndsWith(".xls"))
                    
    return string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};"
                        
    + "Extended Properties='Excel 8.0;HDR=Yes;IMEX=2';", filePath);
                
    if (filePath.EndsWith(".xlsx"))
                    
    return string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};"
                        
    + "Extended Properties='Excel 12.0 Xml;HDR=YES';", filePath);
                
    throw new Exception("wrong file type!");
            }
            
    public static DataTable ExcuteSelect(string filePath, string sql)
            {
                
    using(OleDbConnection conn = new OleDbConnection(GetConnectionString(filePath)));
                {
                    OleDbDataAdapter ad 
    = new OleDbDataAdapter(sql, conn);
                    DataTable table 
    = new DataTable();
                    conn.Open();
                    ad.Fill(table);
                    
    return table;
                }
            }
        }
    }
  • 相关阅读:
    mysql主从只同步部分库或表
    springboot~aspect通过@annotation进行拦截
    ELK~fluentd将日志文件增量读到es里
    怎么自学 Java ?和盘托出
    一个后端开发的 Vue 笔记【入门级】
    企业级数据大屏设计如何实现
    Vue.js官方中文教程
    vue学习笔记 ---- 系列文章
    基于Asp.net core Kestrel的超迷你http服务器 ---- AServer
    Docker学习—概念及基本应用
  • 原文地址:https://www.cnblogs.com/xhan/p/1504998.html
Copyright © 2011-2022 走看看