从Excel到Gridview的表格格式?在Asp.Net中?

从Excel到Gridview的表格格式?在Asp.Net中?,asp.net,Asp.net,在web应用程序[asp.net]中,我试图在gridview中获取excel数据。它工作正常,但gridview中的表格格式与excel不同。我的意思是表格的格式不同于excel和gridivew。我正在放置屏幕截图,请首先找到它们是Excel格式: 第二个是Gridview屏幕截图,它位于.aspx页面中 请帮我安排一下桌子的设计。谢谢。尝试从这个链接:在一个学习Linq的视频中,我看到了这个标签,但记不清了。但我测试了这一点,您也可以使用linq代码制作表格。祝您玩得愉快 尝试以下代码将

在web应用程序[asp.net]中,我试图在gridview中获取excel数据。它工作正常,但gridview中的表格格式与excel不同。我的意思是表格的格式不同于excel和gridivew。我正在放置屏幕截图,请首先找到它们是Excel格式:

第二个是Gridview屏幕截图,它位于.aspx页面中


请帮我安排一下桌子的设计。谢谢。

尝试从这个链接:
在一个学习Linq的视频中,我看到了这个标签,但记不清了。但我测试了这一点,您也可以使用linq代码制作表格。
祝您玩得愉快

尝试以下代码将excel导入Gridview:

using System.Data;
public partial class _Default : System.Web.UI.Page 
{
    DataTable dt = new DataTable();
    protected void Page_Load(object sender, EventArgs e)
    {

    }
    protected void Button1_Click(object sender, EventArgs e)
    {
         //Check file is available in File upload Control
        if (FileUpload1.HasFile)
        {
            //Store file name in the string variable
            string filename = FileUpload1.FileName;
            //Save file upload file in to server path for temporary
            FileUpload1.SaveAs(Server.MapPath(filename));
            //Export excel data into Gridview using below method
            ExportToGrid(Server.MapPath(filename));            
        }        
    }
    void ExportToGrid(String path)
    {
        OleDbConnection MyConnection = null;
        DataSet DtSet = null;
        OleDbDataAdapter MyCommand = null;

        //Connection for MS Excel 2003 .xls format
        MyConnection = new OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0; Data Source='" + path + "';Extended Properties=Excel 8.0;");

        //Connection for .xslx 2007 format
        // MyConnection = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source='" + path + "';Extended Properties=Excel 12.0;");            

        //Select your Excel file
        MyCommand = new System.Data.OleDb.OleDbDataAdapter("select * from [Sheet1$]", MyConnection);
        DtSet = new System.Data.DataSet();
        //Bind all excel data in to data set
        MyCommand.Fill(DtSet, "[Sheet1$]");
        dt = DtSet.Tables[0];
        MyConnection.Close();
        //Check datatable have records
        if (dt.Rows.Count > 0)
        {
            GridView1.DataSource = dt;
            GridView1.DataBind();
        }
        //Delete temporary Excel file from the Server path
        if(System.IO.File.Exists(path))
        {
            System.IO.File.Delete(path);
        }
    }
}

一个主要的可见问题是Excel电子表格有子表(例如,货物数量)。在“纯”html中,这可以通过使用来完成,但在GridView中,这并不容易,除非您创建子GridView,如下所示:

<asp:GridView runat="server" ...>
  <Columns>
    <asp:BoundField HeaderText="MyHeader" DataField="MyField1"... />
    ...
    <asp:TemplateField HeaderText="MySubGridHeader">
      <asp:GridView runat="server" ...> // need to databind this
        <Columns>
          <asp:BoundField HeaderText="MySubHeader1" DataField="MyField2"... />
          <asp:BoundField HeaderText="MySubHeader2" DataField="MyField3"... />
        </Columns>
      </asp:GridView>
    </asp:TemplateField>
  </Columns>
</asp:GridView>

(注意:我没有关联,也没有测试过它)。

如果您显示Gridview的标记并准确描述您想要的更改,这将对我们有所帮助。现在,我们必须通过比较截图来了解自己。你所说的格式是什么意思?只是外表?这是asp.net应用程序,你不能用CSS来实现吗?我认为你对网格控件的要求太高了。您要求网格控件提供excel—但excel是一个开发时间太长的程序,网格控件只是asp.net的基本辅助控件。我想你还有很多工作要做。Wouter De kort,我只是看一个gridview,自动生成列是正确的,如下所示: