首页 新闻 会员 周边

C#导出Excel时按类型分Sheet

0
悬赏园豆:30 [已解决问题] 解决于 2013-01-30 09:48

网上查了很多,都是按条数分Sheet,我是要按类型分Sheet,比如这个类型是一个村名字,要的结果就是这个村名字下面所有的数据在一个Sheet里面,会有多个村名字,不知道有谁做过这样的,求分享/分析。

问题补充:

http://www.cnblogs.com/woody-wu/archive/2009/07/30/1535465.html

我看了这个大神写了,写到一半。。。

狮女小熊的主页 狮女小熊 | 初学一级 | 园豆:159
提问于:2012-11-28 14:29
< >
分享
最佳答案
0

先按照 村外 group by 然后找出一个结果集,遍历这个结果集~ 每个sheet 装载这个村的数据~ 如果记录条数大于了 65536 (就是excel的最大行数)就再分出去一个sheet。。 不太明白 是怎么回事

收获园豆:15
二十二号同学 | 小虾三级 |园豆:790 | 2012-11-28 14:39

这是我在网上看的,他这个就是数据量超过了65536就换一个sheet

我要的是,一个类型用一个sheet。

狮女小熊 | 园豆:159 (初学一级) | 2012-11-28 14:40

@狮女小熊: 0.0 你装不下那么多数据怎么办? 第65537条数据就要进行分页的吧 

二十二号同学 | 园豆:790 (小虾三级) | 2012-11-28 14:41

这是我在网上看的,他这个就是数据量超过了65536就换一个sheet

我要的是,一个类型用一个sheet。

 

我现在不知道要怎么把数据分出来,然后重新给一个sheet。。。

狮女小熊 | 园豆:159 (初学一级) | 2012-11-28 14:41

@狮女小熊: 说了~先把数据 distinct , group by 出来~ 然后一个一个处理,如果超过了255个sheet ,就分一个文件出去

二十二号同学 | 园豆:790 (小虾三级) | 2012-11-28 14:49

@天生俪姿: 我已经做count 出要分sheet的个数,distinct 出类型的名称,就是不知道怎么重新用一个sheet。

狮女小熊 | 园豆:159 (初学一级) | 2012-11-28 14:54

@狮女小熊: 

http://blog.sina.com.cn/s/blog_6510b61f0100yzht.html

2.新建一个Sheet

  Worksheet mySheet = workbook.Sheets[1] as Worksheet; //第一个sheet页

  mySheet.Name = "testsheet"; //这里修改sheet名称

//在第一个位置添加工作表

                  mySheet=(_Worksheet)myBook.Sheets.Add(missing,missing,missing,missing);

                  mySheet.Name="MySheetFirst";

                  

                  //在第一个位置后面添家一个工作表

                  _Worksheet mySheet1=(_Worksheet)myBook.Sheets.Add(missing,myBook.Sheets[1],missing,missing);

                   mySheet1.Name="MySheetEnd";

二十二号同学 | 园豆:790 (小虾三级) | 2012-11-28 16:00

@狮女小熊: 这样行么?

二十二号同学 | 园豆:790 (小虾三级) | 2012-11-28 16:00
其他回答(3)
0

Excel导出行不,它可以按照你要求来sheet1,sheet2,sheet3,弄出来的

收获园豆:3
若雪封尘 | 园豆:463 (菜鸟二级) | 2012-11-28 14:31

精灵妹子,我要的就是Excel导出这样的结果,但是我实现不了,思路进行不下去,代码写到一半卡住了。

支持(0) 反对(0) 狮女小熊 | 园豆:159 (初学一级) | 2012-11-28 14:33

@狮女小熊: 我比你大,去百度c#导出Excel表格的代码吧,很多很多滴,修改点你需要的就行!

支持(0) 反对(0) 若雪封尘 | 园豆:463 (菜鸟二级) | 2012-11-28 14:38
0

写XML

用流导出

收获园豆:2
gxc. | 园豆:319 (菜鸟二级) | 2012-11-28 14:33
0

我写过Java版本的,用POI写的,是从数据库中把表导出来成一个excel表

收获园豆:10
谢安1 | 园豆:186 (初学一级) | 2012-11-28 15:04

是怎么新建一个sheet啊?

支持(0) 反对(0) 狮女小熊 | 园豆:159 (初学一级) | 2012-11-28 15:08

@狮女小熊: 你是使用的POI吗?好像.NET版本的是NPOI,我把我的新建sheet的代码贴给你吧!

fis = new FileInputStream(file);
wb = new HSSFWorkbook(fis);

HSSFSheet sheet = null;
        if (wb.getSheetIndex(sheetName) == -1) // 如果文件中不存在这样的表,则创建新的
            sheet = wb.createSheet(sheetName);
        else
            sheet = wb.getSheet(sheetName); // 如果文件中已经存在这样的表,则直接覆盖这个表

支持(0) 反对(0) 谢安1 | 园豆:186 (初学一级) | 2012-11-28 16:50

@xiezhong: 你知道怎么删除一个sheet吗?例如sheet1

支持(0) 反对(0) 狮女小熊 | 园豆:159 (初学一级) | 2012-12-03 16:52

@狮女小熊: 这个没试过,我猜应该有removesheet这类的方法吧,自己找找吧,呵呵,我那个POI的程序还是一年前写的,自己都忘得差不多啦!

支持(0) 反对(0) 谢安1 | 园豆:186 (初学一级) | 2012-12-03 16:57
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册