c#.net 中 如何将gridview中的数据导出到excel中? 网上的好多办法是将HTML以Excel格式输出,但是导入的时

这但是这样导入的时候就会出错,求帮助... 这但是这样导入的时候就会出错 ,求帮助 展开
 我来答
dengjun9452005
2011-04-26 · TA获得超过655个赞
知道小有建树答主
回答量:144
采纳率:0%
帮助的人:182万
展开全部
这涉及到一个标准EXCEL格式的问题。
通常基于WEB的开发为了方便 大家都采用直接将表格内容导出为EXCLE格式。
而导入的时候我们会发现基于EXCEL的OLEDB数据连接对这种格式的EXCEL格式是不支持的。

为了解决以上问题。我开发中有几个办法。
1:需要导入的EXCEL采用引用EXCEL类的方法输出。
这种方法保证了EXCEL输出的标准格式。但是需要服务器安装EXCEL 且容易造成进程锁死,给系统稳定性造成影响。
2:将导出的EXCEL另存为一次。这种方法固然好使,但是是不是能接受每次都另存为是个问题。
3:采用第三方控件导出。目前我接触的第三方控件是 Myxls 你可以google下 这个控件使用起来跟调用EXCEL差不多。可以生成标准XLS文件。但是对样式支持不是太好。

希望对你有帮助
wangshuaisupin
2011-04-26 · TA获得超过1884个赞
知道小有建树答主
回答量:805
采纳率:100%
帮助的人:1220万
展开全部

Microsoft.Office.Interop.Excel.Application app = new Microsoft.Office.Interop.Excel.ApplicationClass();
这个组件将数据在服务上生成一个真正的excel文件供用户下载即可,如果没有用过上面这个组件我有详细代码!
追问
真的没有用过 太感谢你了   你是做过这样的例子吗? 希望给我发一份 好人啊
我的QQ:237612252
追答
代码已发送到你的QQ邮箱
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fu881121
2011-05-02
知道答主
回答量:32
采纳率:0%
帮助的人:25万
展开全部
在Bin中导入ExcelLibrary.dll
引入using ExcelLibrary.SpreadSheet;
代码如下:
protected void btnExcel_Click(object sender, EventArgs e)
{
FileUpload upload = new FileUpload();
this.gvStatistics.AllowPaging = false;//先取消分页,以便能将所有数据导出。
this.gvStatistics.DataBind();//再重新绑定一次数据

int rows = this.gvStatistics.Rows.Count;//行数
int columns = this.gvStatistics.Columns.Count;//列数
int pages = this.gvStatistics.PageCount;//页数

Workbook book = new Workbook();
Worksheet sheet = new Worksheet("sheet1");

string value = "";
for (int r = 0; r < rows; r++)
{
for (int c = 0; c < columns; c++)
{
value = this.gvStatistics.Rows[r].Cells[c].Text;
sheet.Cells[r, c] = new Cell(value);
}

}
book.Worksheets.Add(sheet);
book.Save(@"D:\名字.xls");
this.gvStatistics.AllowPaging = true;//导出后分页。
this.gvStatistics.DataBind();//再重新绑定一次数据
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2011-05-05
展开全部
可以将整个gridview放在某个层里,直接复制出来,不过这样导出来的不好看.
至于导回来的话,
string strConn;
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filepath+ ";Extended Properties=Excel 8.0;";
OleDbConnection conn = new OleDbConnection(strConn);
conn .Open();
/*工作表的判断
DataTable sheetNames = conn .GetOleDbSchemaTable
(System.Data.OleDb.OleDbSchemaGuid.Tables, new object[] );
*/
OleDbDataAdapter oada = new OleDbDataAdapter("select * from [" + sheetname + "]", conn);
conn .Close();
Datatable db=new Datatable ();
oada .Fill(db);
有个Datatable 了,绑定也就好绑定了
另外,站长团上有产品团购,便宜有保证
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
pkcrazylong
2011-04-26 · 超过30用户采纳过TA的回答
知道答主
回答量:108
采纳率:0%
帮助的人:66.3万
展开全部
用DataTable的方式导出
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式