我现在要把一个Excel文件输出到DataGrid中,由于DataGrid必须是绑定列的,所以就要声明DataField. 问题随之而来,如果Excel文件中的表头:年份 单位代码 单位名称 标号 简称这几项名称的文字和"DataField=XXXXXXXXXX"的不一样,就会导致文件不能读取.比如“年份”被输入成“年 份”或者是“年分”.......
曾经想过用传参数的方法给DataField赋值,可是好象用DataField=<%=变量名%>的方法不行,.NET禁止这样的赋值,各位有什么好方法么?求教
曾经想过用传参数的方法给DataField赋值,可是好象用DataField=<%=变量名%>的方法不行,.NET禁止这样的赋值,各位有什么好方法么?求教
解决方案 »
- RSACryptoServiceProvider 解密数据报错。
- WebClient对象的OpenRead()方法,报http500错
- 这样的sql语句该怎么写,请教。
- 图片格式转换!
- 吴旗娃的分页控件怎么换成有背景图片的格式??
- 救急
- 如何通过后台程序添加模板列!求助
- 页面刷新或事件提交后,如何实现网页仍在原浏览位置?
- ajaxpro与ajaxtoolkit是否有冲突
- 请问诸位大虾,如何使用存储过程?存储过程可以保持数据库操作的原子性么?
- 我用OleDbConnection打开一个excel表为什么第一行没有了呢?高手帮忙啊
- 再问:FreeTextBox如何自动换行?已经搞了好长时间了快没有信心了,请各位大师指导,谢谢
http://dev.csdn.net/develop/article/15/15544.shtm
{
DataGrid1.DataSource=CreateDataSource();
DataGrid1.DataBind();
// 在此处放置用户代码以初始化页面
} ICollection CreateDataSource()
{
DataTable dt = new DataTable();
DataRow dr;
dt.Columns.Add(new DataColumn("身份证号码", typeof(string)));
dt.Columns.Add(new DataColumn("图书单价",typeof(decimal)));
dt.Columns.Add(new DataColumn("购买数量",typeof(Int32)));
dt.Columns.Add(new DataColumn("总价格",typeof(decimal)));
for (int i = 0; i < 30; i++)
{
dr = dt.NewRow();
dr[0] = "123456789123456789";
dr[1] = 100 * i /3.0;
dr[2] = i + 5;
dr[3] = (decimal)dr[1] * (Int32)dr[2];
dt.Rows.Add(dr);
}
DataView dv = new DataView(dt);
return dv;
} private void Button1_Click(object sender, System.EventArgs e)
{
Response.Clear();
Response.Buffer= true;
Response.Charset="GB2312";
Response.AppendHeader("Content-Disposition","attachment;filename=FileName.xls");
Response.ContentEncoding=System.Text.Encoding.GetEncoding("GB2312"); //设置输出流为简体中文
Response.ContentType = "application/ms-excel"; //设置输出文件类型为excel文件。
this.EnableViewState = false;
System.Globalization.CultureInfo myCItrad = new System.Globalization.CultureInfo("ZH-CN",true);
System.IO.StringWriter oStringWriter = new System.IO.StringWriter(myCItrad);
System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
this.DataGrid1.RenderControl(oHtmlTextWriter);
Response.Write(oStringWriter.ToString());
Response.End(); }
private void Button1_Click(object sender, System.EventArgs e)
{
Response.Clear();
Response.Buffer= true;
Response.Charset="GB2312";
//Response.AppendHeader("Content-Disposition","attachment;filename=FileName.xls");
//Response.AppendHeader("Content-Disposition","attachment;filename=FileName.doc");
//Response.AppendHeader("Content-Disposition","attachment;filename=FileName.txt");
Response.ContentEncoding=System.Text.Encoding.GetEncoding("GB2312"); //设置输出流为简体中文
//Response.ContentType = "application/ms-excel"; //设置输出文件类型为excel文件。
//Response.ContentType="application/ms-word";
//Response.ContentType="application/ms-notepad";
this.EnableViewState = false;
System.Globalization.CultureInfo myCItrad = new System.Globalization.CultureInfo("ZH-CN",true);
System.IO.StringWriter oStringWriter = new System.IO.StringWriter(myCItrad);
System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
this.DataGrid1.RenderControl(oHtmlTextWriter);
Response.Write(oStringWriter.ToString());
Response.End(); }
如果DataField="年份",而Excel文件这一列不是“年份”,如"年 份"什么的,就有错误了
{
string strConn= "Provider=Microsoft.Jet.OLEDB.4.0;" +
"Data Source=C:\\Inetpub\\wwwroot\\contacts.xls;"+
"Extended Properties=Excel 8.0;";
OleDbConnection conn = new OleDbConnection(strConn);
OleDbDataAdapter da= new OleDbDataAdapter("SELECT * FROM [ContactList$]", strConn);
DataSet ds= new DataSet();
da.Fill(myDataSet);
return myDataSet;
}