项目场景:
提示:读取excel文件
问题描述
提示:读取加密excel附件
using MSExcel = Microsoft.Office.Interop.Excel;
MSExcel.Application EXC = new MSExcel.Application();
MSExcel.Workbook workbook = EXC.Workbooks.Open(path);
解决方案:
private DataSet getData(string path)
{
string fileSuffix = System.IO.Path.GetExtension(path);
MSExcel.Application EXC = new MSExcel.Application();
MSExcel.Workbook workbook = EXC.Workbooks.Open(path);
if (string.IsNullOrEmpty(fileSuffix))
return null;
using (DataSet ds = new DataSet())
{
//判断Excel文件是2003版本还是2007版本
string connString = "";
if (fileSuffix == ".xls"|| fileSuffix == ".xlsx")
connString = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + path + ";" + ";Extended Properties=\"Excel 8.0;HDR=YES;IMEX=1\"";
//else
// connString = "Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source=" + path + ";" + ";Extended Properties=\"Excel 12.0;HDR=YES;IMEX=1\"";
//读取文件
string sql_select = " SELECT * FROM [Sheet1$]";
using (OleDbConnection conn = new OleDbConnection(connString))
{
using (OleDbDataAdapter cmd = new OleDbDataAdapter(sql_select, conn))
{
conn.Open();
cmd.Fill(ds);
}
}
if (ds == null || ds.Tables.Count <= 0) return null;
return ds;
}
}