zoukankan      html  css  js  c++  java
  • 在SharePoint中无代码开发InfoPath应用: 一个测试Web Service的工具

    在SharePoint中无代码开发InfoPath应用: 一个测试Web Service的

    声明:里面的很多东西是基于前人的基础上实现的,具体是哪些人 俺忘了,我做了一些整合和加工

     

    这个项目居于openxml做Excel的导入导出,可以用OpenXml读取Excel中的图片 和OpenXml插入Excel 图片,相信这两个还是挺有用的

     

    OpenXmlHelper 类为对外抛出的类,包含封装的导入导出的数据操作方法和一些对象的属性

     

    一、导出Excel数据

     

    1.导出的数据为DataSet,可以允许多个DataTable

     

    1.需要设置RowIndex;RowIndex为数据起始行(也就是可以根据你的Excel模板声明第一行数据的起始行,导出几个工作簿就声明 int[] 对应的长度)

     

    2.OpenXmlExportImages 导出后的图片数据类型为Dictionary<string, List<OpenXmlExportImages>>,key为对应的工作簿名称

     

    OpenXmlExportImages类为图片导出数据存储类

     

    /// <summary>
    /// 导出
    /// </summary>
    public class OpenXmlExportImages
    {
    /// <summary>
    /// X坐标
    /// </summary>
    public long X { get; set; }

    /// <summary>
    /// Y坐标
    /// </summary>
    public long Y { get; set; }
    /// <summary>
    /// 宽度
    /// </summary>
    public long? Width { get; set; }

    /// <summary>
    /// 高度
    /// </summary>
    public long? Height { get; set; }

    /// <summary>
    /// 图片路径如c:eee.png
    /// </summary>
    public string ImagePath { get; set; }
    }

    OpenXmlExportImages

    导出的图片位置就靠x,y来设置了,图片路径要用绝对路径不用的话我就不知道会出啥事了

     

    3.导出的代码demo,

     

    protected void BtnExcelOut_Click(object sender, EventArgs e)
    {
    var fileTemplatePath = Server.MapPath("~/Template/TestTemplate.xlsx");
    var filePath = Server.MapPath(string.Format("~/TempFile/{0}.xlsx", Guid.NewGuid().ToString()));
    OpenXmlHelper ox = new OpenXmlHelper();
    ox.RowIndex = new int[] { 4 };
    System.Data.DataSet ds = new System.Data.DataSet();
    DataTable dt1 = GetData();
    ds.Tables.Add(dt1);
    ox.OpenXmlExportImages = new System.Collections.Generic.Dictionary<string, System.Collections.Generic.List<OpenXmlExportImages>>();
    System.Collections.Generic.List<OpenXmlExportImages> openXmlExportImages=new System.Collections.Generic.List<OpenXmlExportImages>();
    OpenXmlExportImages oximg1=new OpenXmlExportImages();
    oximg1.ImagePath = @"E:Pictures未命名-2.png";
    oximg1.X = 100;
    oximg1.Y = 100;
    openXmlExportImages.Add(oximg1);
    OpenXmlExportImages oximg2 = new OpenXmlExportImages();
    oximg2.ImagePath = @"E:Pictures8F00FD3446EF4044867BB87ED8B80716.gif";
    oximg2.X = 300;
    oximg2.Y = 400;
    openXmlExportImages.Add(oximg2);
    OpenXmlExportImages oximg3 = new OpenXmlExportImages();
    oximg3.ImagePath = @"E:Pictures2000.jpg";
    oximg3.X = 400;
    oximg3.Y = 400;
    oximg3.Width = 400;
    oximg3.Height = 400;
    openXmlExportImages.Add(oximg3);
    ox.OpenXmlExportImages.Add("数据", openXmlExportImages);
    ox.ExcelExport(ds, filePath, fileTemplatePath);
    DownLoadExcelFile(filePath);
    }

    Excel导出

    复制代码
     1         protected void BtnExcelOut_Click(object sender, EventArgs e)
     2         {
     3             var fileTemplatePath = Server.MapPath("~/Template/TestTemplate.xlsx");
     4             var filePath = Server.MapPath(string.Format("~/TempFile/{0}.xlsx", Guid.NewGuid().ToString()));
     5             OpenXmlHelper ox = new OpenXmlHelper();
     6             ox.RowIndex = new int[] { 4 };
     7             System.Data.DataSet ds = new System.Data.DataSet();
     8             DataTable dt1 = GetData();
     9             ds.Tables.Add(dt1);
    10             ox.OpenXmlExportImages = new System.Collections.Generic.Dictionary<string, System.Collections.Generic.List<OpenXmlExportImages>>();
    11             System.Collections.Generic.List<OpenXmlExportImages> openXmlExportImages=new System.Collections.Generic.List<OpenXmlExportImages>();
    12             OpenXmlExportImages oximg1=new OpenXmlExportImages();
    13             oximg1.ImagePath = @"E:Pictures未命名-2.png";
    14             oximg1.X = 100;
    15             oximg1.Y = 100;
    16             openXmlExportImages.Add(oximg1);
    17             OpenXmlExportImages oximg2 = new OpenXmlExportImages();
    18             oximg2.ImagePath = @"E:Pictures8F00FD3446EF4044867BB87ED8B80716.gif";
    19             oximg2.X = 300;
    20             oximg2.Y = 400;
    21             openXmlExportImages.Add(oximg2);            
    22             OpenXmlExportImages oximg3 = new OpenXmlExportImages();
    23             oximg3.ImagePath = @"E:Pictures2000.jpg";
    24             oximg3.X = 400;
    25             oximg3.Y = 400;
    26             oximg3.Width = 400;
    27             oximg3.Height = 400;
    28             openXmlExportImages.Add(oximg3);
    29             ox.OpenXmlExportImages.Add("数据", openXmlExportImages);
    30             ox.ExcelExport(ds, filePath, fileTemplatePath);
    31             DownLoadExcelFile(filePath);
    32         }
    复制代码

     

    二、导入Excel数据

     

    1.导入Excel之后数据格式为DataSet,允许为多个工作簿,DataTable的tablename为对应的工作簿名称

     

    2.OpenXmlImportImages 导入Excel后如果存在图片,存储在改类中

     

    OpenXmlImportImages 中的Image为二进制的图片流,至于要怎么存储大伙自己转换吧

     

    FromRow,FromCol是图片所在的行列 RefId做标识用的

     

     OpenXmlImportImages

    /// <summary>
    /// 导入
    /// </summary>
    public class OpenXmlImportImages
    {
    public string RefId { get; set; }
    /// <summary>
    /// 列
    /// </summary>
    public int FromRow { get; set; }
    /// <summary>
    /// 行
    /// </summary>
    public int FromCol { get; set; }
    public byte[] Image { get; set; }
    }

    OpenXmlImportImages

     

     

    3.导入代码demo

     

     Excel导入

    /// <summary>
    /// 导入Excel数据
    /// </summary>
    private void ImportingExcelData()
    {
    OpenXmlHelper ox = new OpenXmlHelper();
    string filePath = Server.MapPath("~/Template/data.xlsx");
    ox.RowIndex = new int[] { 4 };
    DataSet ds = ox.ExcelToDataSet(filePath);
    data = ds.Tables[0];
    OpenXmlImportImages = ox.OpenXmlImportImages["数据"];
    }

    Excel导入

     

    ------------

    这是这个系列的第一篇,介绍一个小工具,主要是用在Web Service测试的。

    因为为了用一点高级的东西,就免不了和web service打交道。

    你可以使用按照KB819267来修改web.config实现。这个默认的确实有点弱,而且还需要一个SharePoint Server。

    显然有个工具更加方便。微软的一个员工发布了一个小工具:WebServiceStudio,https://webservicestudio.codeplex.com/。名字很大气,却很小巧,很好用。

    上图是一个调用GetCurrentUserInfo的示例。下面一篇文章就会介绍这个Web Service方法。 Stay Tuned!

     
     
    分类: 开发自定义

     

    完成,希望对大家有用,如有bug欢迎大家一起改正,至于里面的东西提问大伙就自己消化吧,demo为vs2012写的

     

    ------------

     

    代码:http://url.cn/Tawgo9 微云网盘

     

     

     

     

     

     
    标签: OpenXml Excel

  • 相关阅读:
    linux中公钥和私钥的区别以及关系
    PAM
    57 容器(十一)——Collections容器工具类
    56 容器(十)——Iterator迭代器遍历容器
    55 重载需要注意的地方
    54 容器(九)——HashSet
    53 容器(八)——TreeMap 红黑树
    52 权限修饰符
    51 方法重写需要注意的地方
    50 多态,为什么总是要用父类引用指向子类对象?
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/3373060.html
Copyright © 2011-2022 走看看