日期:2014-05-17  浏览次数:20447 次

ASP.NET用Microsoft.Office.Interop.Excel操作Excel
我想要将Excel返回为一个asp:table,并且样式也相同,就是将Excel原封不动的显示到asp.net的页面上,可以实现吗?

------解决方案--------------------
将excel转化为html就可以了。所有样式和sheet都保留。
------解决方案--------------------
可以用Microsoft的 ACE 驱动去读取Excel
也可以用插件NPOI来操作Excel
都是很方便的,方法网上很多
------解决方案--------------------
public DataSet ExecleDs(string filenameurl, string table)
    {
        string strConn = "Provider=Microsoft.Jet.OleDb.4.0;" + "data source=" + filenameurl + ";Extended Properties='Excel 8.0; HDR=YES; IMEX=1'";
        OleDbConnection conn = new OleDbConnection(strConn);
        conn.Open();
        DataSet ds = new DataSet();
        OleDbDataAdapter odda = new OleDbDataAdapter("select * from [Sheet1$]", conn);
        odda.Fill(ds, table);
        conn.Close();
        return ds;
    }
protected void Button2_Click(object sender, EventArgs e)
    {
        string strConn = "DATA SOURCE=(local);DATABASE=zxq;USER ID=sa;PWD=111111";
        if (FileUpload1.HasFile == false)//HasFile用来检查FileUpload是否有指定文件
        {
            Response.Write("<script>alert('请您选择Excel文件')</script> ");
            return;//当无文件时,返回
        }
        string IsXls = System.IO.Path.GetExtension(FileUpload1.FileName).ToString().ToLower();//System.IO.Path.GetExtension获得文件的扩展名
        if (IsXls != ".xls")
        {
            Response.Write("<script>alert('只可以选择Excel文件')</script>");
            return;//当选择的不是Excel文件时,返回
        }
        SqlConnection cn = new SqlConnection(strConn);
        cn.Open();
        string filename = DateTime.Now.ToString("yyyymmddhhMMss") + FileUpload1.FileName;              //获取Execle文件名  DateTime日期函数
        string savePath = Server.MapPath(("~\\upfiles\\") + filename);//Server.MapPath 获得虚拟服务器相对路径
        FileUpload1.SaveAs(savePath);                        //SaveAs 将上传的文件内容保存在服务器上
        DataSet ds = ExecleDs(savePath,