黑马程序员技术交流社区
标题:
C#读取Excel数据,如何得到Execl的表名
[打印本页]
作者:
BIAO
时间:
2014-5-23 14:59
标题:
C#读取Excel数据,如何得到Execl的表名
OpenFileDialog openFile = new OpenFileDialog();
openFile.Filter = "导出Excel (*.xls)|*.xls";
if (openFile.ShowDialog() != DialogResult.OK)
{
return;
}
string TSql = "SELECT * FROM [sheet1$]";
//这里固定写死了,如果用户改变了sheet1名字就找不到
DataTable dt1 = ExcelToDataSet(openFile.FileName, TSql);
/// <summary>
/// 返回Excel数据源
/// </summary>
/// <param name="filename">文件路径</param>
/// <param name="TSql">TSql</param>
/// <returns>DataSet</returns>
public static DataTable ExcelToDataSet(string filename, string TSql)
{ string strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=Excel 8.0;data source=" + filename;
OleDbConnection myConn = new OleDbConnection(strCon);
string strCom = TSql;
myConn.Open();
OleDbDataAdapter myCommand = new OleDbDataAdapter(strCom, myConn);
DataTable dt = new DataTable();
myCommand.Fill(dt);
myConn.Close();
return dt;
}
string TSql = "SELECT * FROM [sheet1$]";
//这里固定写死了,如果用户改变了sheet1名字就找不到、
现在想问下,如果得到Excel的表名,自动读取对应的数据
作者:
lpz869
时间:
2014-5-23 20:28
//excel导入到数据库功能
private void button3_Click(object sender, EventArgs e)
{
string filename="";
//打开导入EXCEl文件,获取文件名
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
//获取文件名
filename= openFileDialog1.FileName;
}
//连接excel的连接字符串,excel2007版本以上的
//hdr=yes代表第一行是列名
string strconn="Provider=Microsoft.Ace.oledb.12.0;Data Source="+filename+";"+"Extended Properties='Excel 12.0;HDR=Yes;'";
//查询excel 表格数据,[sheet1$]工作表的名字
string sqlexcel = "select * from [用户信息$]";
//数据集对象
System.Data.DataSet ds = new System.Data.DataSet();
//连接对象
OleDbConnection olecon = new OleDbConnection(strconn);
//打开连接对象
olecon.Open();
//适配器对象
OleDbDataAdapter adapter = new OleDbDataAdapter(sqlexcel, olecon);
//适配器填充导入数据到数据集
adapter.Fill(ds,"book1");
olecon.Close();//关闭连接对象
//数据显示在dataGridView1中
dataGridView1.DataSource = ds.Tables[0];
//把导入的数据插入到数据库表中
DataManager datamanager = new DataManager();
//调用方法把数据添加到数据表中
datamanager.AddDataFromExcel(ds);
}
//本人亲自测试
作者:
continue
时间:
2014-5-24 09:10
NPOI、MyXls等,NPOI能够分析Excel文件的格式,能够进行常用Excel操作,不依赖于Excel,节省资源,没有安全性、性能的问题,在ASP.net中用最合适。只能处理xls格式文件、不能处理xlsx这样的新版本Excel文件格式。处理xlsx还要用OpenXML。三方插件,需要导入引用
OpenXML,微软提供的读写Excel的技术,优点和NPOI差不多,不过只能处理xlsx格式文件。docx、pptx
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2