CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  VB.NET

datagrid输出到Excel2003?

楼主liangwqtps(几百K)2005-11-01 16:38:21 在 .NET技术 / VB.NET 提问

在OFFICE   2000下运行很好的程序,因为升级到了OFFICE2003(SP1)而无法执行,似乎是找不到运行库.则将引用类型更改为Microsoft   Office   11.0   Object   Library和Microsoft   Excel   11.0   Object   Library.  
  在部分机器上可以运行,但仍然有些英文操作系统的机器报错.  
  郁闷...有遇到过这个问题的兄弟吗?  
   
  实际程序大致如下  
                  Dim   xlApp   As   Object  
                  Dim   xlBook   As   Object  
                  Dim   xlSheet   As   Object  
   
                  'Start   a   new   workbook   in   Excel.  
                  xlApp   =   CreateObject("Excel.Application")  
                  'xlBook   =   xlApp.Workbooks.Add  
                  xlBook   =   xlApp.Workbooks().Add  
                  xlSheet   =   xlBook.Worksheets("sheet1")  
                  xlApp.Visible   =   True  
                  xlSheet   =   xlBook.Worksheets(1)  
   
                  'Add   data   to   cells   of   the   first   worksheet   in   the   new   workbook.  
   
  .....  
   
  问题点数:100、回复次数:11Top

1 楼zhangzhiwei(rock)回复于 2005-11-01 17:11:06 得分 5

up   ~~~Top

2 楼smallMage(小马哥)回复于 2005-11-01 17:26:39 得分 5

http://dotnet.asp.ccTop

3 楼qqchenjacky((*****))回复于 2005-11-01 19:48:54 得分 20

这是一个导出excel函数,  
   
   
    Dim   myExcel   As   New   Excel.Application  
  Public   Sub   ExportToExcel(ByVal   mytable   As   DataTable)  
               
                  Try  
                          Dim   datav   As   New   DataView  
                          datav   =   mytable.DefaultView  
                          Dim   i,   j   As   Integer  
                          Dim   rows   As   Integer   =   datav.Table.Rows.Count  
                          Dim   cols   As   Integer   =   datav.Table.Columns.Count  
                          Dim   DataArray(rows   -   1,   cols   -   1)   As   String  
                          Dim   myExcel   As   Excel.Application   =   New   Excel.Application  
                          For   i   =   0   To   rows   -   1  
                                  For   j   =   0   To   cols   -   1  
                                          If   datav.Table.Rows(i).Item(j)   Is   System.DBNull.Value   Then  
                                          Else  
                                                  DataArray(i,   j)   =   datav.Table.Rows(i).Item(j)  
                                          End   If  
                                  Next  
                          Next  
                          myExcel.Application.Workbooks.Add(True)  
                          myExcel.Visible   =   True  
                          For   j   =   0   To   cols   -   1  
                                  myExcel.Cells(1,   j   +   1)   =   datav.Table.Columns(j).ColumnName  
                          Next  
                          myExcel.Range("A2").Resize(rows,   cols).Value   =   DataArray  
                          myExcel.Quit()  
   
                  Catch   exp   As   Exception  
                          MessageBox.Show("数据导出失败!请查看是否已经安装了Excel")  
                       
                  End   Try  
                 
          End   SubTop

4 楼snowjin78(方圆)回复于 2005-11-02 19:57:39 得分 0

我试过了,确实可以!感谢!Top

5 楼jxufewbt(我的目标是5星)回复于 2005-11-02 20:08:34 得分 25

http://dotnet.aspx.cc/ShowDetail.aspx?id=8A4CBF47-B888-4832-3389-ED3A3A3C8AABTop

6 楼renyu732(Sysinfo)回复于 2005-11-02 20:19:19 得分 25

http://renyu732.cnblogs.com/archive/2005/06/15/174866.aspxTop

7 楼moodboy1982(老鹰)回复于 2005-11-02 20:47:57 得分 0

这么快,才一回,就有这么多人回了?Top

8 楼liangwqtps(几百K)回复于 2005-11-22 09:24:15 得分 0

首先感谢各位的关心,所给的方法都是对的。  
  BUT:  
  这段时间我也在尝试,OFFICE2003调用EXCEL时还是在部分机器上有问题,估计和OFFICE2003的版本有关系。  
  再等等看。。。Top

9 楼DreamOfEyes(风之语)回复于 2005-11-22 13:46:30 得分 20

Public   Function   ExportExcel(ByVal   dtbTableName   As   DataTable)   As   Boolean  
                  Dim   xlApp   As   New   Excel.Application  
                  Dim   xlBook   As   Excel.Workbook  
                  Dim   xlSheet   As   Excel.Worksheet  
   
                  Dim   rowIndex,   colIndex   As   Integer  
                  rowIndex   =   1  
                  colIndex   =   0  
   
                  xlBook   =   xlApp.Workbooks().Add  
                  xlSheet   =   xlBook.Worksheets("sheet1")  
   
                  Dim   Table   As   New   DataTable  
                  'Table   =   CreaTable()  
                  Table   =   dtbTableName  
   
                  '将所得到的表的列名,赋值给单元格  
                  Dim   Col   As   DataColumn  
                  Dim   Row   As   DataRow  
                  For   Each   Col   In   Table.Columns  
                          colIndex   =   colIndex   +   1  
                          xlApp.Cells(1,   colIndex)   =   Col.ColumnName  
                  Next  
   
                  '得到的表所有行,赋值给单元格  
                  For   Each   Row   In   Table.Rows  
                          rowIndex   =   rowIndex   +   1  
                          colIndex   =   0  
                          For   Each   Col   In   Table.Columns  
                                  colIndex   =   colIndex   +   1  
                                  xlApp.Cells(rowIndex,   colIndex)   =   Row(Col.ColumnName)  
                          Next  
                  Next  
   
                  With   xlSheet  
                          '设标题为黑体字  
                          .Range(.Cells(1,   1),   .Cells(1,   colIndex)).Font.Name   =   "宋体"  
                          '标题字体加粗  
                          .Range(.Cells(1,   1),   .Cells(1,   colIndex)).Font.Bold   =   True  
                          '设表格边框样式  
                          .Range(.Cells(1,   1),   .Cells(rowIndex,   colIndex)).Borders.LineStyle   =   1  
   
                  End   With  
   
                  With   xlSheet.PageSetup  
                          .LeftHeader   =   ""   &   Chr(10)   &   "&""楷体_GB2312,常规""&10公司名称:"       '   &   Gsmc  
                          .CenterHeader   =   "&""楷体_GB2312,常规""公司人员情况表&""宋体,常规"""   &   Chr(10)   &   "&""楷体_GB2312,常规""&10日   期:"  
                          .RightHeader   =   ""   &   Chr(10)   &   "&""楷体_GB2312,常规""&10单位:"  
                          .LeftFooter   =   "&""楷体_GB2312,常规""&10制表人:"  
                          .CenterFooter   =   "&""楷体_GB2312,常规""&10制表日期:"  
                          .RightFooter   =   "&""楷体_GB2312,常规""&10第&P页   共&N页"  
                  End   With  
   
                  xlApp.Visible   =   True  
   
                  Return   True  
   
          End   FunctionTop

10 楼hzg7361(无**言**)回复于 2005-11-25 15:15:45 得分 0

DreamOfEyes(风之语)    
  你的那个可以导出,   但是有个问题,能否给予解答,谢谢  
  导出后立即打开保存的那个文件没办法打开,因为excel进程没结束,现在怎样结束这个进程?Top

11 楼sheri28(屠鼠英雄)回复于 2006-01-25 14:39:01 得分 0

关注  
  Top

相关问题

  • DataGrid->Excel的格式化输出问题
  • Excel输出
  • 如何将WinForm中的DataGrid的数据输出为 Excel文件?
  • 如何将DATAGRID中的内容输出到EXCEL中?
  • 怎样把excel文件里面的内容,输出到dataGrid上?
  • 关于datagrid中输出到excel的问题
  • 关于在。NET中将DataGrid的数据输出到EXCEL中去!!!!
  • 各位高手们,关于输出Excel到DataGrid中的问题(DataField)
  • DataGrid输出到Excel并进行格式化处理怎么搞的?
  • jsp输出Excel问题?

关键词

  • office2003
  • excel
  • office
  • colindex
  • xlbook
  • xlapp
  • xlsheet
  • rowindex
  • datav
  • dim

得分解答快速导航

  • 帖主:liangwqtps
  • zhangzhiwei
  • smallMage
  • qqchenjacky
  • jxufewbt
  • renyu732
  • DreamOfEyes

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo