欢迎您访问我爱IT技术网,今天小编为你分享的编程技术是:【ASP.NET(C#)读取Excel的文件内容】,下面是详细的讲解!
ASP.NET(C#)读取Excel的文件内容
///<summary>
///上传文件到临时目录中
///</ummary>
private void Upload()
{
HttpPostedFile file=this.fileSelect.PostedFile;
string fileName=file.FileName;
string tempPath=System.IO.Path.GetTempPath(); //获取系统临时文件路径
fileName=System.IO.Path.GetFileName(fileName); //获取文件名(不带路径)
this.currFileExtension=System.IO.Path.GetExtension(fileName); //获取文件的扩展名
this.currFilePath=tempPath + fileName; //获取上传后的文件路径 记录到前面声明的全局变量
file.SaveAs(this.currFilePath); //上传
}
///<summary>
///读取xls\xlsx格式的Excel文件的方法
///</ummary>
///<param name="path">待读取Excel的全路径</param>
///<returns></returns>
private DataTable ReadExcelToTable(string path)
{
//连接字符串
string connstring="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path + ";Extended Properties='Excel 8.0;HDR=NO;IMEX=1';"; // Office 07及以上版本 不能出现多余的空格 而且分号注意
//string connstring=Provider=Microsoft.JET.OLEDB.4.0;Data Source=" + path + ";Extended Properties='Excel 8.0;HDR=NO;IMEX=1';"; //Office 07以下版本 因为本人用Office2010 所以没有用到这个连接字符串 可根据自己的情况选择 或者程序判断要用哪一个连接字符串
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); //查询字符串
OleDbDataAdapter ada=new OleDbDataAdapter(sql,connstring);
DataSet set=new DataSet();
ada.Fill(set);
return set.Tables[0];
}
}
///<summary>
///读取csv格式的Excel文件的方法
///</ummary>
///<param name="path">待读取Excel的全路径</param>
///<returns></returns>
private DataTable ReadExcelWithStream(string path)
{
DataTable dt=new DataTable();
bool isDtHasColumn=false; //标记DataTable 是否已经生成了列
StreamReader reader=new StreamReader(path,System.Text.Encoding.Default); //数据流
while(!reader.EndOfStream)
{
string meaage=reader.ReadLine();
string[] splitResult=message.Split(new char[]{','},StringSplitOption.None); //读取一行 以逗号分隔 存入数组
DataRow row=dt.NewRow();
for(int i=0;i<splitResult.Length;i++)
{
if(!isDtHasColumn) //如果还没有生成列
{
dt.Columns.Add("column" + i,typeof(string));
}
row[i]=splitResult[i];
}
dt.Rows.Add(row); //添加行
isDtHasColumn=true; //读取第一行后 就标记已经存在列 再读取以后的行时,就不再生成列
}
return dt;
}
关于ASP.NET(C#)读取Excel的文件内容的用户互动如下:
相关问题:
答: >>详细
相关问题:
答: >>详细
相关问题:
答: >>详细
- 【asp】asp.net url重写浅谈-net-url重写
- 【DataSet】DataSet、DataTable、DataRow区别详解
- 【asp】asp.net 动态添加多个用户控件-net-动态添
- 【创建】ASP.NET Web API教程 创建域模型的方法详
- 【Asp】Asp.net 页面调用javascript变量的值-net-
- 【ASP】ASP.NET 5升级后如何删除旧版本的DNX-NET5
- 【asp】asp.net ubb使用代码-net-ubb使用
- 【默认图片】图片不存在使用默认图片代替的实例
- 【asp】asp.net 页面转向 Response.Redirect Ser
- 【jQuery】jQuery实现倒计时跳转的例子-倒计时跳
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
