错误提示如下:
研究了一下:
方法一:可用,就是打开excel有警告
private void Export(string FileType, string FileName)
{
Response.Clear();
Response.Charset = "GB2312";
Response.ContentEncoding = System.Text.Encoding.UTF8;
Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(FileName, Encoding.UTF8).ToString());
Response.ContentType = FileType;
this.EnableViewState = false;
StringWriter tw = new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(tw);
GVpositionrecods.AllowPaging = false;
GVpositionrecods.AllowSorting = false;
bind();
GVpositionrecods.RenderControl(hw);
Response.Write(tw.ToString());
Response.End();
GVpositionrecods.AllowPaging = true;
GVpositionrecods.AllowSorting = true;
bind();
}
方法二:利用org.in2bits.MyXls.dll
问题,不知道为什么前两列内容为空,不知道是不是因为汉字愿意,txt看都是乱码。
private void Method()
{
XlsDocument xls = new XlsDocument();
xls.FileName = DateTime.Now.ToString().Replace("-", "").Replace(":", "").Replace(" ", "") + ".xls";//excel文件名称
Worksheet sheet = xls.Workbook.Worksheets.Add("jhpt"); //创建一个工作页为jhpt
Cells cells = sheet.Cells;
int colnum = GVpositionrecods.Columns.Count; //获取gridview列数
for (int i = 0; i < colnum; i++)
{
cells.Add(1, (i + 1), this.GVpositionrecods.Columns[i].HeaderText);//导出gridView列名
}
for (int i = 0; i < GVpositionrecods.Rows.Count; i++)
{
for (int j = 0; j < colnum; j++)
{
cells.Add((i + 2), (j + 1), GVpositionrecods.Rows[i].Cells[j].Text.Trim());
}
}
//xls.Save(@"D:\"); //保存到指定位置
xls.Send();//把写好的excel文件输出到客户端
}