http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 10795|回复: 3

[总群] 请问一下,为什么我把listview数据导出excel会非常慢的啊?

[复制链接]
发表于 2013-11-20 10:25:16 | 显示全部楼层 |阅读模式
♂changlei() 10:22:43
请问一下,为什么我把listview数据导出excel会非常慢的啊?



漫游消




1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
 楼主| 发表于 2013-11-20 10:29:24 | 显示全部楼层
♂站长苏飞() 10:25:24
多少数据,怎么导的

♂小海哥 [北京]() 10:26:22
估计有个几亿条吧

♂changlei() 10:27:24
数据也不是太多,一共八列,行数只有一千行内,当然行数越少肯定会越快,现在感觉代码上处理的不好。

♂changlei() 10:27:37
稍等贴代码


 楼主| 发表于 2013-11-20 10:33:47 | 显示全部楼层
♂changlei() 10:30:26
也是之前网上抄来的一段代码,如下:
  
[C#] 纯文本查看 复制代码
 /// <summary>
        /// 从ListView到Excel具体方法
        /// </summary>
        /// <param name=”lv”></param>
        /// <param name=”filename”></param>
        public static void LvtoExcel(ListView lv, string filename)                                        //listview导入EXCEL方法                     
        {
            int rownum = lv.Items.Count;                            //取总行数
            if (rownum == 0 || string.IsNullOrEmpty(filename))
            {
                MessageBox.Show("没有记录");
                return;
            }
            int columnnum = lv.Items[0].SubItems.Count;             //列数
            int rowindex = 1;                                       //定义excel行索引从1开始,       excel都是从1开始
            int columnindex = 0;                                    //定义excel列索引
            if (rownum > 0)
            {
                Microsoft.Office.Interop.Excel.Application excelapp = new Microsoft.Office.Interop.Excel.Application();     //初始化一个excel实例

                if (excelapp == null)
                {
                    MessageBox.Show("无法创建EXCEL对象,可能你的系统没有安装EXCEL,将转成保存成WPSExcel格式!");
                    // LvtoWpsExcel(lv, filename);
                    return;
                }
                //因为使用COM库,因此有许多变量用Nothing代替
                Object Nothing = Missing.Value;
                Microsoft.Office.Interop.Excel.Workbook wb = excelapp.Workbooks.Add(Nothing);                              //创建excel工作薄对象
                Microsoft.Office.Interop.Excel.Worksheet ws = (Microsoft.Office.Interop.Excel.Worksheet)wb.Sheets[1];      // 指定excel第一页为工作表
                //将ListView的列名导入Excel第一行
                foreach (ColumnHeader lc in lv.Columns)             //遍历listview列头
                {
                    columnindex++;
                    ws.Cells[rowindex, columnindex] = lc.Text;      //向excel表格填列名数据
                }
                //将ListView的值导入Excel
                for (int i = 0; i < rownum; i++)                    //遍历listview行
                {
                    rowindex++;
                    columnindex = 0;
                    for (int j = 0; j < columnnum; j++)             //遍历listview列
                    {
                        columnindex++;
                        //注意这个在导出是加”\t”的目的是避免导出的数据显示为科学计数法
                        //if (columnindex == 8)  //本程序中第八列为时间 加上/t显示为正常的时间格式
                        //{
                        //    ws.Cells[rowindex, columnindex] = Convert.ToString(lv.Items.SubItems[j].Text.Trim(). + "\t");     //向excel表格填数据
                        //}
                        //else
                        //{
                        ws.Cells[rowindex, columnindex] = Convert.ToString(lv.Items.SubItems[j].Text.ToString().Trim());     //向excel表格填数据
                        //}

                    }
                }
                wb.SaveAs(filename, Microsoft.Office.Interop.Excel.XlFileFormat.xlWorkbookNormal, Nothing, Nothing, Nothing, Nothing, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange, Nothing, Nothing, Nothing, Nothing, Nothing);         //保存
                wb.Close(Nothing, Nothing, Nothing);                //关闭工作薄
                excelapp.Quit();                                    //退出实例
            }
        }

♂changlei() 10:32:50
0.jpg

♂站长苏飞() 10:32:52
直接使用流写,不要用这个用StreamWrite


 楼主| 发表于 2013-11-20 10:43:40 | 显示全部楼层
♂changlei() 10:36:25
好的·谢谢苏总指点,再研究一下

♂站长苏飞() 10:37:44
Ok


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

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-12-23 00:33

© 2014-2021

快速回复 返回顶部 返回列表