C#读取Excel导入到数据库及读取Excel工作表为任意表名的方法

添加openFileDialog1,用于选择Excel表

using System.IO;
using System.Data.OleDb;

//导入Excel表
private void btnInto_Click(object sender, EventArgs e)
{

string resultFile = "";
OpenFileDialog openFileDialog1 = new OpenFileDialog();
openFileDialog1.Filter = "表格文件(*.xls,*.xlsx)|*.xls;*.xlsx";
openFileDialog1.FilterIndex = 2;
openFileDialog1.RestoreDirectory = true;
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
resultFile = openFileDialog1.FileName;

GetExcel(resultFile);

}
}
/// <summary>
/// 获取Excel表格内容
/// </summary>
/// <param name="fileName">Excel表名字</param>
private void GetExcel(string fileName)
{

根据表名创建链接字符串
string excelStr = "Provider= Microsoft.Ace.OleDB.12.0;Data Source=" + fileName + ";Extended Properties=‘Excel 12.0;HDR=YES;IMEX=1‘";

string strSheetName = GetExcelFirstTableName(fileName);//获取第一个工作表名字
if (strSheetName!=null)
{

DataTable dt = new DataTable();

using (System.Data.OleDb.OleDbDataAdapter myCommand = new System.Data.OleDb.OleDbDataAdapter("select * from[" + strSheetName + "]", excelStr))
{
try
{
myCommand.Fill(dt);

}
catch (Exception ex)
{

MessageBox.Show("操作失败" + ex.Message);
}

}
dgvShow.DataSource = dt;

}
else
{
MessageBox.Show("这是张空表!");
}

}

/// <summary>
/// 获取excel第一个工作表名字
/// </summary>
/// <param name="excelFileName">Excel表名字</param>
/// <returns></returns>
public static string GetExcelFirstTableName(string excelFileName)
{
string tableName = null;
if (File.Exists(excelFileName))
{
string excelStr = "Provider= Microsoft.Ace.OleDB.12.0;Data Source=" + excelFileName + ";Extended Properties=‘Excel 12.0;HDR=YES;IMEX=1‘";
using (OleDbConnection conn = new OleDbConnection(excelStr))
{
conn.Open();
DataTable dt = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);//获取table内容
tableName = dt.Rows[0][2].ToString().Trim();
}
}
return tableName;
}

时间: 2024-09-29 01:29:58

C#读取Excel导入到数据库及读取Excel工作表为任意表名的方法的相关文章

将Excel [导入到数据库] or 将数据 [导入到Excel]

将Excel导入到数据库实现如下: 前台代码: @model IEnumerable<Model.Student> @{ Layout = null; } <!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width" /> <title>Index</title> <script

excel导入到数据库的异常处理

excel导入到数据库,这个是经常发生的,今天就碰到了一个非常郁闷的事情,在导入到oracle数据的时候,总是出现ORA-01756: 引号内的字符串没有正确结束,认真的排插了数据当中可能出现的错误,明明感觉是某个不可见字符或者是某个很细小的字符造成的,后来终于找到诀窍了,要把字符中的空格,逗号(全角半角),引号(全角半角),斜杠换行符等都清楚干净再去导入.

C#将数据库导出成Excel,再从Excel导入到数据库中。

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data.SqlClient; using System.IO; namespace CindyDatabaseProcess { class Program { static void Main(string[] args) { System.Data.DataTable dt1 = null; S

查询数据库中带有某个字段的所有表名

mysql数据库查询带有某个字段的所有表名 SELECT * FROM information_schema.columns WHERE column_name='column_name'; oracle数据库查询带有某个字段的所有表名select column_name,table_name,from user_tab_columns where column_name='column_name'; 原文地址:https://www.cnblogs.com/anjunshuang/p/9599

如何将excel导入到数据库中并在gridview中显示

在页面上导入个excel文件,将该excel中的数据导入到数据库中,并且在页面的gridview中把数据显示出来. 1.在Asp.net中怎样将Excel文件中的数据导入到GridView中呢? 首先我们将这张表中的数据转换为DataTable类型的数据源,做一个函数来解决这个问题 private DataTable createDataSource(string strPath) { stringstrCon; strCon = "Provider=Microsoft.Jet.OLEDB.4.

thinkPHP实现将excel导入到数据库中的方法

提示:我在测试的时候遇到报错exception 'PHPExcel_Reader_Exception' with message 'The filename 原因是由于excel的文件后缀可能不同,我的文件后缀是xlsx,然后给把他另存为了xls的文件,就可以了 ? 1 2 3 4 5 6 7 8 9 10 11 <html>  <head>  </head>  <body>   <form action="{pigcms::U('Jdb/a

Excel导入Oracle数据库

1.录入excel测试表格,test.xls.2.另存为.csv格式3.创建sql*loader控制文件test.ctl,内容如下:Load dataInfile 'c:\test.csv'insert Into table test Fields terminated by ','(column1,column2,column3,column4,column5) 需要将数据文件拷贝到对应位置 4.到数据库中建立对应的测试表test create table test (column1 Varc

thinkphp将excel导入到数据库中

首先下载phpexcel插件 http://pan.baidu.com/s/1hq56dFm 我用的是thinkphp框架的3.1版本,下载好压缩包,框架中的extend中的vendor文件夹中新建一个名为PHPExcel的文件夹,把classes里面的内容放到里面 下面是前端页面 提示:我在测试的时候遇到报错exception 'PHPExcel_Reader_Exception' with message 'The filename 原因是由于excel的文件后缀可能不同,我的文件后缀是xl

NPOI把Excel导入到数据库

二,把Excel中的数据导入到数据库的具体步骤: protected void Button1_Click(object sender, EventArgs e)        {            try            {                //文件流                using (Stream stream = new FileStream(@"G:\userInfo.xls", FileMode.Open, FileAccess.Read))