C# 不用插件 遍历Excel工作表,如何遍历,小弟我想取里面的数据
C# 不用插件 遍历Excel工作表,怎么遍历,我想取里面的数据
C# 不用插件 遍历Excel工作表,怎么遍历,我想取里面的数据,我想通过程序将Excel里面的所有数据导入到指定的表中。大师们,提醒下,不用插件怎么取数据
------解决思路----------------------
不用插件的意思是不用office的com控件吗?
那就NOPI
http://www.cnblogs.com/xuguoming/p/3419608.html
------解决思路----------------------
OLEDB for excel
------解决思路----------------------
什么叫"插件",难道别人的DLL就是插件微软的DLL就不是插件?
http://bbs.****.net/topics/390830774
------解决思路----------------------
如果你的意思是不依赖第三方库或者是office组件的话可以看看牛13的SejExcelExport
------解决思路----------------------
我博客上有,坑爹的****,我真想说脏话,连接都发不上来,说有非法词汇,我看我以后只用博客做记录,不再用这鸟J8编辑器
------解决思路----------------------
public DataTable GetData(string sExcelFilePath, string sSheetName,bool bDRN,int iIMEX)
{
DataSet Ds = new DataSet();
//string sConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};" + "Extended Properties=\"Excel 8.0;IMEX={1};Hdr={2}\"";
string sConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=\"Excel 12.0 Xml;IMEX=1;HDR=YES\"";
//string sConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties="Excel 12.0 Xml;HDR=YES";
string sDRN = (bDRN) ? "Yes" : "No";
sConn = string.Format(sConn, sExcelFilePath.Trim(), iIMEX.ToString(), sDRN.Trim());
OleDbConnection conn = new OleDbConnection(sConn);
conn.Open();
OleDbDataAdapter myCommand = null;
string sExcel = string.Format("select * from [{0}$]", sSheetName);
myCommand = new OleDbDataAdapter(sExcel, sConn);
myCommand.Fill(Ds, sSheetName);
conn.Close();
myCommand.Dispose();
myCommand = null;
return Ds.Tables[0];
}
------解决思路----------------------
既然你知道插件 就去看插件 说白了 插件就是别人的代码级 很多人把自己的代码集 叫方法 别人的叫插件 你看会他的 不久好啦 o(︶︿︶)o 唉
------解决思路----------------------
OpenFileDialog ofd = new OpenFileDialog();
ofd.Title = "Excel文件";
ofd.FileName = "";
ofd.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);//为了获取特定的系统文件夹,可以使用System.Environment类的静态方法GetFolderPath()。该方法接受一个Environment.SpecialFolder枚举,其中可以定义要返回路径的哪个系统目录
ofd.Filter = "Excel文件(*.xls)
------解决思路----------------------
*.xls
------解决思路----------------------
Excel文件(*.xlsx)
------解决思路----------------------
*.xlsx";
ofd.ValidateNames = true; //文件有效性验证ValidateNames,验证用户输入是否是一个有效的Windows文件名
ofd.CheckFileExists = true; //验证路径有效性
ofd.CheckPathExists = true; //验证文件有效性
string strName = string.Empty;
if (ofd.ShowDialog() == DialogResult.OK)
{
strName = ofd.FileName;
}
if (strName == "")
{
MessageBox.Show("没有选择Excel文件!无法进行数据导入");
return;
}
string strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source = " + strName + ";Extended Properties ='Excel 8.0;HDR=NO;IMEX=1'";
OleDbConnection conn = new OleDbConnection(strConn);
OleDbDataAdapter adp = new OleDbDataAdapter("Select * from [Sheet1$]", conn);
DataSet ds = new DataSet();
adp.Fill(ds, "Book1");
------解决思路----------------------
用6楼的方式就好了,数据库的方法搞定呗
------解决思路----------------------
这个直接使用
------解决思路----------------------
楼主得仔细解释一下不用插件的含义是什么?莫非你要自己从头写代码?
C# 不用插件 遍历Excel工作表,怎么遍历,我想取里面的数据,我想通过程序将Excel里面的所有数据导入到指定的表中。大师们,提醒下,不用插件怎么取数据
------解决思路----------------------
不用插件的意思是不用office的com控件吗?
那就NOPI
http://www.cnblogs.com/xuguoming/p/3419608.html
------解决思路----------------------
OLEDB for excel
------解决思路----------------------
什么叫"插件",难道别人的DLL就是插件微软的DLL就不是插件?
http://bbs.****.net/topics/390830774
------解决思路----------------------
如果你的意思是不依赖第三方库或者是office组件的话可以看看牛13的SejExcelExport
------解决思路----------------------
我博客上有,坑爹的****,我真想说脏话,连接都发不上来,说有非法词汇,我看我以后只用博客做记录,不再用这鸟J8编辑器
------解决思路----------------------
public DataTable GetData(string sExcelFilePath, string sSheetName,bool bDRN,int iIMEX)
{
DataSet Ds = new DataSet();
//string sConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};" + "Extended Properties=\"Excel 8.0;IMEX={1};Hdr={2}\"";
string sConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=\"Excel 12.0 Xml;IMEX=1;HDR=YES\"";
//string sConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties="Excel 12.0 Xml;HDR=YES";
string sDRN = (bDRN) ? "Yes" : "No";
sConn = string.Format(sConn, sExcelFilePath.Trim(), iIMEX.ToString(), sDRN.Trim());
OleDbConnection conn = new OleDbConnection(sConn);
conn.Open();
OleDbDataAdapter myCommand = null;
string sExcel = string.Format("select * from [{0}$]", sSheetName);
myCommand = new OleDbDataAdapter(sExcel, sConn);
myCommand.Fill(Ds, sSheetName);
conn.Close();
myCommand.Dispose();
myCommand = null;
return Ds.Tables[0];
}
------解决思路----------------------
既然你知道插件 就去看插件 说白了 插件就是别人的代码级 很多人把自己的代码集 叫方法 别人的叫插件 你看会他的 不久好啦 o(︶︿︶)o 唉
------解决思路----------------------
OpenFileDialog ofd = new OpenFileDialog();
ofd.Title = "Excel文件";
ofd.FileName = "";
ofd.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);//为了获取特定的系统文件夹,可以使用System.Environment类的静态方法GetFolderPath()。该方法接受一个Environment.SpecialFolder枚举,其中可以定义要返回路径的哪个系统目录
ofd.Filter = "Excel文件(*.xls)
------解决思路----------------------
*.xls
------解决思路----------------------
Excel文件(*.xlsx)
------解决思路----------------------
*.xlsx";
ofd.ValidateNames = true; //文件有效性验证ValidateNames,验证用户输入是否是一个有效的Windows文件名
ofd.CheckFileExists = true; //验证路径有效性
ofd.CheckPathExists = true; //验证文件有效性
string strName = string.Empty;
if (ofd.ShowDialog() == DialogResult.OK)
{
strName = ofd.FileName;
}
if (strName == "")
{
MessageBox.Show("没有选择Excel文件!无法进行数据导入");
return;
}
string strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source = " + strName + ";Extended Properties ='Excel 8.0;HDR=NO;IMEX=1'";
OleDbConnection conn = new OleDbConnection(strConn);
OleDbDataAdapter adp = new OleDbDataAdapter("Select * from [Sheet1$]", conn);
DataSet ds = new DataSet();
adp.Fill(ds, "Book1");
------解决思路----------------------
用6楼的方式就好了,数据库的方法搞定呗
------解决思路----------------------
/// <summary>
/// 将Excel转换位dataTable
/// </summary>
/// <param name="strExcelFileName">Excel的路径</param>
/// <param name="strSheetName"></param>
/// <returns></returns>
public static System.Data.DataTable ExcelToDataTable(string strExcelFileName, string strSheetName)
{
//源的定义
string strConn = "Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source=" + strExcelFileName + ";" + "Extended Properties='Excel 12.0;HDR=Yes;IMEX=1;'";
//Sql语句
//string strExcel = string.Format("select * from [{0}$]", strSheetName); 这是一种方法
string strExcel = "select * from [sheet1$]";
//定义存放的数据表
DataSet ds = new DataSet();
//连接数据源
OleDbConnection conn = new OleDbConnection(strConn);
conn.Open();
//适配到数据源
OleDbDataAdapter adapter = new OleDbDataAdapter(strExcel, strConn);
adapter.Fill(ds, strSheetName);
conn.Close();
return ds.Tables[strSheetName];
}
这个直接使用
------解决思路----------------------
楼主得仔细解释一下不用插件的含义是什么?莫非你要自己从头写代码?