2014年1月6日星期一

C#通过模板导出Word(文字,表格,图片) - 爱乐飞

本邮件内容由第三方提供,如果您不想继续收到该邮件,可 点此退订
C#通过模板导出Word(文字,表格,图片) - 爱乐飞  阅读原文»

  C#导出Word,Excel的方法有很多,这次因为公司的业务需求,需要导出内容丰富(文字,表格,图片)的报告,以前的方法不好使,所以寻找新的导出方法,在网上找到了通过模板文件导出Word的方法,记录一下过程.

一:模板的创建

  通过模板导出,肯定需要先创建模板,然后顾名思义就是将模板中提前设置好的占位符,通过程序替换为想输出的内容即可;

  新建word文件(必须为docx或者dotx文件),放在程序根目录下,在需要位置 插入-文档部件-域,

  域名:MacroButton
  宏名:DoFieldClick
  显示文字:这个自己设置,为了与模板其他文字区分,可以用"[]"括起来.
  需要多少替换内容,添加多少域即可.

二:添加项目

  在解决方案中添加项目WordMLHelper,在原项目中添加对WordMLHelper的引用后可以直接调用.
  WordMLHelper代码地址:http://url.cn/U8VNul

三:调用方法

  首先确定模板文件位置和导出文件的生成路径.

private string mubanFile = "muban.docx";
private string outputPath = @"C:\Users\zz\Desktop\test1.docx";

  1.打开模板文件,获取所有填充域

1 string templatePath = Path.Combine(System.AppDomain.CurrentDomain.BaseDirectory
2 , mubanFile);
3 List<TagInfo> tagInfos = wordMLHelper.GetAllTagInfo(File.OpenRead(templatePath));

  2.遍历所有填充域,替换填充域内容

  锁定填充域的话,有两种方法,一是根据填充域的提示文字,如"[文字]",二是根据填充域的索引,如if(tagInfos.Seq==2),则是找到索引为2的填充域

1 for (int i = 0; i < tagInfos.Count; i++)
2 {
3 //填充域有两种类型,1:段落或图片,2:表格
4 //对填充域填充时需先判断填充域类型
5 if (tagInfos.Tbl == null)
6 {
7 if (string.Equals(tagInfos.TagTips.Trim(), "[文字]"))
8 {
9 TxtInfo txtInfo = new TxtInfo();
10 txtInfo.Content = "已经成功替换";
11 txtInfo.ForeColor = "00ff00";
12 //txtInfo.HightLight = HighlightColor.Blue;
13 tagInfos.AddContent(txtInfo);
14 }
15 if (string.Equals(tagInfos.TagTips.Trim(), "[图片]"))
16 {
17 ImgInfo imgInfo = new ImgInfo();
18 imgInfo.ImgPath = Path.Combine(System.AppDomain.CurrentDomain.BaseDirectory
19 , "./image/a1.jpg");
20 imgInfo.Width = 200;
21 imgInfo.Height = 200;
22 tagInfos.AddContent(imgInfo);
23 }
24 }
25 else
26 {
27 TableStructureInfo tblInfo = tagInfos.Tbl;
28 if (tagInfos.Seq==2)
29 {
30 for (int j = 0; j < 3; j++)
31 {
32 RowStructureInfo row = new RowStructureInfo();
33
34 for (int k = 0; k < 3; k++)
35 {
36 CellStructureInfo cell = new CellStructureInfo();
37 TxtInfo txtInfo = new TxtInfo();
38 txtInfo.Content = "" + (j + 1) + "大数据导论之为何需要引入大数据 - 张子良  阅读原文»

一、引言

  最近各种客户咨询项目中,往往涉及大数据引入必要性和价值意义的深层次挖掘,客户有数据,有平台,但是不知到底要不要上大数据为何要上大数据和大数据可以带来哪些价值和意义。本文关于大数据的必要性进行阐述,来源实际项目,算是分享吧。

二、突破技术瓶颈

  

  互联网技术催生了大数据时代的来临,大数据时代的数据形态有四大特点:首先数据体量巨大,非结构化数据的超大规模和增长占总数据量的80%至90%,比结构化数据增长快10到50倍;其次、大数据的异构和多样性,比如图片、新闻、博客、微博、微信等,比大更重要的是数据的复杂性,有时甚至大数据中的小数据如一条微博就具有颠覆性的价值;第三,价值密度低,大量的不相关信息,需要沙里淘金;第四,传播速度快,因此,需要实时分析而非批量式分析。

  在大数据时代,面对如此海量快速的信息,纯人工监测互联网已经不可行了。自动化舆情软件成为大数据环境下舆情监测和分析的引擎。监测舆情可以设立一些关键词,首先要与自己机构相关,可以包括竞争者或者是合作伙伴,然后要放在特定网络媒体进行搜集。所有“信息碎片”搜集完之后,我们开始聚合信息,判断哪些和产品相关,哪些跟区域相关,哪些跟自己相关。把这些信息进行精确地采集和过滤、炼化分析,包括传播统计和分析(媒介分析、主体传播分布、传播路径分析、传播源头追踪)、敏感(负面)舆情、舆情信息传播趋势分析,预判所收集到舆情信息的未来走势。在此基础上生成舆情简报,舆情简报由系统自动生成,以日或周为单位,对本阶段监测到的舆情进行统计和分析,包括舆情分布、热点舆情排行、负面舆情分析、正面舆情排行等情况。

  大数据时代自身的特点决定了我们既面临数据体量巨大的存储压力,同时面临海量数据信息过滤,数据加工、数据分析和平台运算瓶颈。要想突破传统技术瓶颈的约束,我们必须引入大数据技术。

三、摆脱成本枷锁

  

  基于传统模式的舆情分析和历史数据存储,是建立在高性能服务器硬件和昂贵的关系型数据基础之上的。一方面硬件技术掌握在几大IT巨头手中,服务器的性能是以高昂的成本为支撑的;另外一方面硬件基础之上操作系统、应用软件和关系型数据库同样掌握在几大巨头手中,其价格同样不菲。此外规模的扩展、软件的升级和每年的服务费用也是非常昂贵。

  基于互联网技术发展起来的大数据,以开源框架Hadoop、HBase为基础,以Hive、Sqoop、Pig、Flume等软件为工具,建立在X86-PC服务器和开源Linux操作系统之上。一方面硬件成本得以降低、另外一方面再无须为操作系统和应用软件支付高昂的Licence费用。可以说大数据技术将使我所在很大程度上摆脱传统IT厂商巨额的成本依赖。

四、促进业务创新

  

  这部分涉及具体应用,视行业而定。在此制作一个方向说明:大数据的应用可以衍生新的服务,新的产品。

  大数据实施方案咨询和技术交流群:293503507,敬请关注。


本文链接:http://www.cnblogs.com/hadoopdev/p/3508405.html,转载请注明。

阅读更多内容

没有评论:

发表评论