引用命名空间
using Microsoft.Win32;
using System.IO;
using System.Data.OleDb;
下面是程序代码
string fName;private void readButton_Click(object sender, EventArgs e){//用于获取excel文件名OpenFileDialog open = new OpenFileDialog();open.InitialDirectory = \"D:\\\\\";open.Filter = \"Excel(*.xlsx)|*.xlsx|Excel(*.xls)|*.xls\";if (open.ShowDialog() == true){fName = open.FileName;}try{//连接字符串string connstring = \"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=\" + fName + \";Extended Properties=\'Excel 8.0;HDR=YES;IMEX=1\';\"; // Office 07及以上版本 不能出现多余的空格 而且分号注意,HDR=YES,这代表第一行是标题,不做为数据使用 ,如果用HDR=NO,则表示第一行不是标题,做为数据来使用//string connstring = Provider=Microsoft.JET.OLEDB.4.0;Data Source=\" + path + \";Extended Properties=\'Excel 8.0;HDR=NO;IMEX=1\';\"; //Office 07以下版本using (OleDbConnection conn = new OleDbConnection(connstring)){conn.Open();DataTable sheetsName = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, \"Table\" }); //得到所有sheet的名字string firstSheetName = sheetsName.Rows[0][2].ToString(); //得到第一个sheet的名字string sql = string.Format(\"SELECT * FROM [{0}]\", firstSheetName); //查询字符串//string sql = string.Format(\"SELECT * FROM [{0}] WHERE [日期] is not null\", firstSheetName); //查询字符串OleDbDataAdapter ada = new OleDbDataAdapter(sql, connstring);DataSet set = new DataSet();ada.Fill(set);dataGridView1.DataSource = set.Tables[0];//将文件读取到datagridview中}}catch (Exception){}}
- 点赞
- 收藏
- 分享
- 文章举报
jack_london2发布了10 篇原创文章 · 获赞 0 · 访问量 302私信关注