我想在C#中读取excel文件。我不想在阅读时使用以下内容:
注意:使用vs 2005.
请建议我其他任何>>
提前致谢, 桑杰
答案 0 :(得分:1)
正如我在评论中所说,使用OleDb与Interop不同 OleDb是.NET框架的一部分,如果您的客户使用您的应用程序,它已经安装并运行了Framework。因此,这个示例可以帮助证明OleDb可以在没有安装Office的情况下读取您的目标excel文件。
在这个例子中,我有一个简单的工作表,有三列(和第一行的标题) 第一列和第二列是简单文本列,而第三列包含数值
try
{
string con = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\temp\test.xls;Extended Properties='Excel 8.0;HDR=Yes;'";
using(OleDbConnection connectin = new System.Data.OleDb.OleDbConnection(con));
{
connectin.Open();
OleDbCommand command = new System.Data.OleDb.OleDbCommand("select * from [Sheet1$]", connectin);
using(System.Data.OleDb.OleDbDataReader dr = command.ExecuteReader())
{
while (dr.Read)
{
if(dr.HasRows)
{
Console.Write(dr[0].ToString() + " ");
Console.Write(dr[1].ToString() + " ");
Console.WriteLine(Convert.ToInt32(dr[2]));
}
}
}
}
}
catch(Exception ex)
{
Console.WriteLine(ex.ToString());
}