Winfrom中如何将Excel单元格备注导入到系统中的DataGridView! C#WinfromExcel导入 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 首先将Excel中的数据导入到datatable中,然后将datagridview的datasource=上面的datatable就可以了 引入excel的dll,C:\Program Files (x86)\Microsoft Visual Studio 11.0\Visual Studio Tools for Office\PIA\Office14\Microsoft.Office.Interop.Excel.dll源码:using System.Data;using System.Data.OleDb;//strFilePath是excel的路径// strType是excel的后缀名.XL或者.XLSX public DataSet GetDS(string strFilePath, string strType) { string strdb; if (strType.ToUpper() == ".XLS") { strdb = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + strFilePath + ";Extended Properties=Excel 8.0;";//2003 } else { strdb = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + strFilePath + ";Extended Properties=\"Excel 12.0 Xml;HDR=YES\"";//2007 } OleDbConnection con = new OleDbConnection(strdb); con.Open(); DataTable dataTable = con.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null);//获取Sheet的名称 string tableName = dataTable.Rows[0][2].ToString().Trim(); tableName = "[" + tableName.Replace("'", "") + "]"; string strSql = "select * from " + tableName; OleDbDataAdapter da = new System.Data.OleDb.OleDbDataAdapter(strSql, con); DataSet ds = new DataSet(); da.Fill(ds, "poc"); con.Close(); return ds; } 楼上的有个前提,那就是Excel必须是标准的Excel,不能有合并行,合并列之类的。我在2楼已经做了回复,将Excel中的数据导入到datatable中,不一定非要加载微软自带的Excel.dll,还可以使用NPOI,这个第三方插件是个很强大的东西,楼主可以学习下。具体的实现都是小事,问题是方法,明白一个方法在开发中是很有必要的。 这样好像还是只获取到Excel单元格的内容,备注没有啊! C# Winform QQ截图 自动框选 一个SqlCommand语法问题 在asp.net程序中,如何根据文件扩展名获得系统默认的图标 妖怪问题 关于AJAX 线程间操作无效: 从不是创建控件“lstContent”的线程访问它 请指教 急 我用TextBox做了个做了个多行输入的文本框,可是为什么在这里面输入C#的代码,只要保存就会出错呢?应该怎么处理? 急需:C#语句如何HOOK API 关于Linq to SQL的多表查询 关于创建虚拟目录的问题~!! 救急! 如何模拟Tab+Alt实现界面切换 C#怎么用后台做个链接打开新网页
源码:
using System.Data;
using System.Data.OleDb;
//strFilePath是excel的路径
// strType是excel的后缀名.XL或者.XLSX
public DataSet GetDS(string strFilePath, string strType)
{
string strdb;
if (strType.ToUpper() == ".XLS")
{
strdb = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + strFilePath + ";Extended Properties=Excel 8.0;";//2003
}
else
{
strdb = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + strFilePath + ";Extended Properties=\"Excel 12.0 Xml;HDR=YES\"";//2007
} OleDbConnection con = new OleDbConnection(strdb);
con.Open();
DataTable dataTable = con.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null);//获取Sheet的名称
string tableName = dataTable.Rows[0][2].ToString().Trim();
tableName = "[" + tableName.Replace("'", "") + "]";
string strSql = "select * from " + tableName;
OleDbDataAdapter da = new System.Data.OleDb.OleDbDataAdapter(strSql, con);
DataSet ds = new DataSet();
da.Fill(ds, "poc");
con.Close();
return ds;
}
这样好像还是只获取到Excel单元格的内容,备注没有啊!