12
返回列表 发新帖
楼主: hphubei

求教C# Winform里面输出数据到Excel的问题

[复制链接]
论坛徽章:
0
11#
发表于 2006-11-30 09:43 | 只看该作者
方法是:存两个txt文件。一个存固定的html的头,一个存html的尾。中间的tr td的可以循环操作。
然后用流的方式读入、输出。

使用道具 举报

回复
论坛徽章:
2
2009日食纪念
日期:2009-07-22 09:30:002010新春纪念徽章
日期:2010-01-04 08:33:08
12#
发表于 2009-11-16 22:14 | 只看该作者
# public void printAll(System.Data.DataTable dt)  
# {  
#     //导出到execl  
#     try  
#     {  
#         //没有数据的话就不往下执行  
#         if (dt.Rows.Count == 0)  
#             return;  
#         //实例化一个Excel.Application对象  
#         Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();  
#   
#         //新增加一个工作簿,Workbook是直接保存,不会弹出保存对话框,加上Application会弹出保存对话框,值为false会报错  
#         excel.Application.Workbooks.Add(true);  
#   
#         //让后台执行设置为不可见,为true的话会看到打开一个Excel,然后数据在往里写  
#         excel.Visible = false;  
#         //生成Excel中列头名称  
#         for (int i = 0; i < dt.Columns.Count; i++)  
#         {  
#             excel.Cells[1, i + 1] = dataGridView1.Columns.HeaderText;//输出DataGridView列头名  
#         }  
#   
#         //把DataGridView当前页的数据保存在Excel中  
#         if (dt.Rows.Count > 0)  
#         {  
#             for (int i = 0; i < dt.Rows.Count; i++)//控制Excel中行,上下的距离,就是可以到Excel最下的行数,比数据长了报错,比数据短了会显示不完  
#             {  
#                 for (int j = 0; j < dt.Columns.Count; j++)//控制Excel中列,左右的距离,就是可以到Excel最右的列数,比数据长了报错,比数据短了会显示不完  
#                 {  
#                     string str = dt.Rows[j].ToString();  
#                     excel.Cells[i + 2, j + 1] = "'" + str;//i控制行,从Excel中第2行开始输出第一行数据,j控制列,从Excel中第1列输出第1列数据,"'" +是以string形式保存,所以遇到数字不会转成16进制  
#                 }  
#             }  
#         }  
#         //设置禁止弹出保存和覆盖的询问提示框  
#         excel.DisplayAlerts = false;  
#         excel.AlertBeforeOverwriting = false;  
#   
#         //保存工作簿,值为false会报错  
#         excel.Application.Workbooks.Add(true).Save();  
#         //保存excel文件  
#         excel.Save("D:" + "\\KKHMD.xls");  
#   
#         //确保Excel进程关闭  
#         excel.Quit();  
#         excel = null;  
#   
#     }  
#     catch (Exception ex)  
#     {  
#         MessageBox.Show(ex.Message, "错误提示");  
#     }  
# }  
# private void button1_Click(object sender, EventArgs e)  
# {  
#     printAll(dt);  
# }

使用道具 举报

回复
论坛徽章:
0
13#
发表于 2009-12-12 10:24 | 只看该作者

答人

做过,但是你这种比较费劲,要找位置一个格一个格的向EXCLE里面写,如果是规则的就比较好,可以用循环!

使用道具 举报

回复
论坛徽章:
0
14#
发表于 2009-12-12 10:25 | 只看该作者

刚看见,楼上正解!

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表