winform中 将DataGrid中的数据导入Excel中,并显示Excel应用程序

datagrid|excel|程序|数据|显示

   /// <summary>
        /// 将DataGrid中的数据导入Excel中,并显示Excel应用程序,
        /// 注意调用该方法必须有安装Excel 2000应用程序,并且假定DataGrid中绑定的是一DataSet
        /// </summary>
        /// <param name="grid"></param>
        /// <param name="ReportTitle"></param>
        public static void ExportDataGridToExcel(DataGrid grid,string ReportTitle)
        {
            DataTable myTable = ((DataSet)grid.DataSource).Tables[0];

            try
            {
                Excel.Application xlApp = new Excel.ApplicationClass();

                int rowIndex;
                int colIndex;

                rowIndex = 2;
                colIndex = 0;

                Excel.Workbook xlBook =xlApp.Workbooks.Add(true);              

                if (grid.TableStyles.Count >0 )
                {
                    Excel.Range range = xlApp.get_Range(xlApp.Cells[1,1],xlApp.Cells[1,grid.TableStyles[0].GridColumnStyles.Count]);
                    range.MergeCells = true;
                    xlApp.ActiveCell.FormulaR1C1  = ReportTitle;
                    xlApp.ActiveCell.Font.Size  = 18;
                    xlApp.ActiveCell.Font.Bold = true;

                    foreach(DataGridColumnStyle colu in grid.TableStyles[0].GridColumnStyles)
                    {
                        colIndex=colIndex +1;
                        xlApp.Cells[2,colIndex] = colu.HeaderText ;
                    }

                    //得到的表所有行,赋值给单元格
                    for (int row = 0;row < myTable.Rows.Count;row++)
                    {
                        rowIndex = rowIndex + 1;
                        colIndex = 0;
                        for (int col=0;col<grid.TableStyles[0].GridColumnStyles.Count;col++)
                        {
                            colIndex = colIndex + 1;
                            xlApp.Cells[rowIndex, colIndex] = grid[row,col].ToString();
                        }                   
                    }
                }
                else
                {
                    Excel.Range range = xlApp.get_Range(xlApp.Cells[1,1],xlApp.Cells[1,myTable.Columns.Count]);
                    range.MergeCells = true;
                    xlApp.ActiveCell.FormulaR1C1  = ReportTitle;
                    xlApp.ActiveCell.Font.Size  = 18;
                    xlApp.ActiveCell.Font.Bold = true;
                   
                    //将表中的栏位名称填到Excel的第一行
                    foreach(DataColumn Col in myTable.Columns)
                    {
                        colIndex = colIndex + 1;
                        xlApp.Cells[2, colIndex] = Col.ColumnName;               
                    }

                    //得到的表所有行,赋值给单元格
                    for (int row = 0;row < myTable.Rows.Count;row++)
                    {
                        rowIndex = rowIndex + 1;
                        colIndex = 0;
                        for (int col=0;col<myTable.Columns.Count;col++)
                        {
                            colIndex = colIndex + 1;
                            xlApp.Cells[rowIndex, colIndex] = grid[row,col].ToString();
                        }                   
                    }
                }
           
                xlApp.get_Range(xlApp.Cells[2, 1], xlApp.Cells[2, colIndex]).Font.Bold = true;
                xlApp.get_Range(xlApp.Cells[2, 1], xlApp.Cells[rowIndex, colIndex]).Borders.LineStyle = 1;         

                xlApp.Cells.EntireColumn.AutoFit();
                xlApp.Cells.VerticalAlignment = Excel.Constants.xlCenter ;
                xlApp.Cells.HorizontalAlignment = Excel.Constants.xlCenter ;       

                xlApp.Visible = true;           
            }
            catch(Exception e)
            {
                throw e;
            }
           

        }

时间: 2024-10-31 14:07:15

winform中 将DataGrid中的数据导入Excel中,并显示Excel应用程序的相关文章

memo导入数据到数据库-如何将memo中的数据导入BDE中的DB数据库中

问题描述 如何将memo中的数据导入BDE中的DB数据库中 各位老师好 请问如何将memo控件中的数据导入DB中. db数据库中已经有字段 如下 idx Name Act Look memo中的数据 0,矿泉水,5,5, 其中,为分割符 请问代码该如何写

ios-IOS&amp;amp;amp;Android开发:如何从大量未加载的数据中加载一定量的数据到列表中

问题描述 IOS&Android开发:如何从大量未加载的数据中加载一定量的数据到列表中 绝大多数新闻资讯类应用开发过程中都会遇到这么一个问题: 规定每次从服务器最多只能获取20条数据,第一次刷新获取了20条最新的数据,添加到列表中,过一段时间有了30条未刷新的记录,这下问题来了:第二次刷新时是获取最新的20条还是接着第一次获取之后的20条数据放在列表前面?前者会导致列表中间空缺一部分数据,后者问题是要多刷新几次才能把所有数据获取到. 有过相关开发经验的大神们来说说你们的解决方案. 解决方案 刷新

wpf将excel数据导入listview上并显示,然后对Listview进行增删查改

问题描述 wpf将excel数据导入listview上并显示,然后对Listview进行增删查改 不知道怎样显示到listview上面,就是点击按钮的时候就会显示 解决方案 先把Excel里的数据读出来,给你个读Excel的方法: public static DataSet LoadDataFromExcel(string sFilePath) { try { string strConn; strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Sou

asp.net下将纯真IP数据导入数据库中的代码

纯真IP数据包含381085条,可以通过下载的查询软件将数据解压为文本格式,并将其编码改为UTF8,否则在程序中读取中文会乱码! 下面为程序执行分析IP数据并插入到Sql Server的截图: 程序通过AJAX在客户端进行数据插入实时更新: 实现代码如下: 前端页面及javascript: 复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.or

解决Excel数据导入sqlite中的中文乱码问题

具体步骤: 一.txt转excel     首先将网上下载的资源保存成txt文本文件,打开excel,点击"数据--导入数据--获取数据源",根据你的文本格式选择相应的分割符号,然后根据提示的txt格式导入到excel中. 设置完成后,txt文本就成功导入到excel中了.     下面的文字转码是非常重要,由于excel默认是gb2312编码或其他形式,需要将其转为utf-8编码形式,不然导入sqlite中后,中文必然是乱码的.具体操作如下:将excel保存成.csv格式,关闭文件,

asp.net下将纯真IP数据导入数据库中的代码_实用技巧

纯真IP数据包含381085条,可以通过下载的查询软件将数据解压为文本格式,并将其编码改为UTF8,否则在程序中读取中文会乱码! 下面为程序执行分析IP数据并插入到Sql Server的截图: 程序通过AJAX在客户端进行数据插入实时更新: 实现代码如下: 前端页面及javascript: 复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.or

(C#)excel数据导入SqlServer中

excel|server|sqlserver|数据 编写程序,把附件的EXCEL文件( (实验题附件1)03级学生名单.xls或(实验题附件2)成绩登记表.xls) 导入到SQL SERVER2000数据库中.要求:1.EXCEL文件作为数据源2.根据EXCEL文件的字段在SQL SERVER中建立对应的字段3.把EXECL中的记录导到SQL SERVER中 string strCon = " Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source =

easyui 中的datagrid用json数据动态绑定列后,如何给里面的数据加上超链接,谢谢!

问题描述 RT,急求,谢谢!!! 解决方案 解决方案二:formatte:function(value,rowDate,rowIndex){return"返回你想要格式化的东西";}解决方案三:在绑定设置部分设置你对应的format啊--解决方案四:你在javascript版问过了这里也发了贴啊?好吧再贴一遍,正好那边多写了几句没用的代码<tableclass="easyui-datagrid"title="文档列表"id="dg

ASP.NET中实现DataGrid数据排序

asp.net|datagrid|排序|数据 Visual Studio .Net为编写WinForm程序(即:在Windows平台下运行的程序)所提供的DataGrid组件比起微软以往的各种开发环境中提供的DataGrid组件都要"高级"许多.其"高级"的地方就在于不需要再进行任何其他设置或编程,DataGrid就能够对其中的数据分别按照升.降序进行排列.这种"高级"功能给我们编程提供了许多方便.图01是在WinForm程序中的DataGrid

一起谈.NET技术,Silverlight 4中把DataGrid数据导出Excel—附源码下载

Silverlight中常常用到DataGrid来展示密集数据. 而常见应用系统中我们需要把这些数据导入导出到固定Office套件中例如常用的Excel表格. 那么在Silverlight 中如何加以实现? 在参考大量资料后 提供参考思路如下: A:纯客户端导出处理.利用Silverlight 与Javascript 进行交互实现导出Excel. B:服务器端导出.获得DataGrid数据源. 传递给WCF Service到服务器端. 然后把传回数据通过Asp.net中通用处理导出Excel方法