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