zoukankan      html  css  js  c++  java
  • ASP.NET读写Excel文件

      在项目中经常需要用到读写Excel表格的功能,本文讲讲在ASP.NET中将数据导入到Excel表格中的基本方法。

    1.读取Excel文件的数据连接字符串。读取.xls格式文件的Excel文件,可设置连接字符串为:Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\MyExcel.xls;Extended Properties=Excel 8.0;。如果要读取.xlsx和.xls格式文件的Excel文件,则需要将连接字符设置为:"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\MyExcel.xls;Extended Properties=Excel 12.0。

    2.读取Excel表格Sheet的名称。

    public static string[] GetExcelSheetNames(string filePath)
    {
    string conString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filePath + ";Extended Properties=\"Excel 12.0;HDR=YES\"";
    OleDbConnection con
    = new OleDbConnection(conString);
    con.Open();
    DataTable dt
    = con.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
    con.Close();
    if (dt == null)
    {
    return null;
    }
    string[] excelSheetNames = new string[dt.Rows.Count];
    int i = 0;
    foreach (DataRow dr in dt.Rows)
    {
    excelSheetNames[i
    ++] = dr["TABLE_NAME"].ToString();
    }
    return excelSheetNames;
    }

    3.读取Excel文件。

    public static DataTable ReadExcel(string filePath, string conStr)
    {
    string conString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filePath + ";Extended Properties=\"Excel 12.0;HDR=YES\"";
    OleDbConnection con
    = new OleDbConnection(conString);
    OleDbDataAdapter oda
    = new OleDbDataAdapter(conStr, con);
    DataTable dt
    = new DataTable();
    con.Open();
    oda.Fill(dt);
    con.Close();
    return dt;
    }

    4.将数据写入Excel文件。

    public static void WriteExcel(string filePath, DataTable dt)
    {
    if (File.Exists(filePath))
    {
    File.Delete(filePath);
    }
    else
    {
    string conString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filePath + ";Extended Properties=\"Excel 12.0;HDR=YES\"";
    OleDbConnection con
    = new OleDbConnection(conString);
    string createSql = "create table Sheet1 (";
    foreach (DataColumn dc in dt.Columns)
    {
    createSql
    += dc.ColumnName + " varchar,";
    }
    createSql
    = createSql.Substring(0, createSql.Length - 1) + ")";

    OleDbCommand cmd
    = new OleDbCommand(createSql, con);
    con.Open();
    cmd.ExecuteNonQuery();
    foreach (DataRow dr in dt.Rows)
    {
    string insertSql = "insert into Sheet1 values(";
    foreach (DataColumn dc in dt.Columns)
    {
    insertSql
    += "'" + dr[dc].ToString() + "',";
    }
    insertSql
    = insertSql.Substring(0, insertSql.Length - 1) + ")";
    cmd
    = new OleDbCommand(insertSql, con);
    cmd.ExecuteNonQuery();
    }

    con.Close();
    }
    }
  • 相关阅读:
    对于进程的理解
    反汇编引擎实现——流程分析
    window异常处理——except_handler4以及栈展开分析
    对于硬盘驱动的理解
    对文件系统的理解
    移动端适配flexible.js
    vue学习(5)-评论功能(利用父组件的方法)
    vue学习(4)-组件的创建,父子组件传值,$refs
    vue学习(3)-增删改查
    vue学习(2)-过滤器
  • 原文地址:https://www.cnblogs.com/hnsdwhl/p/1980300.html
Copyright © 2011-2022 走看看