yl
2022-06-16 554cb4d840d2bd2a8c8b925d6e4242a949e88f24
导入接口接口定义
已添加64个文件
已修改23个文件
已删除33个文件
472385 ■■■■ 文件已修改
.vs/VueWebApi/v16/.suo 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/App_Start/SwaggerControllerDescProvider.cs 89 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/Controllers/BasicSettingController.cs 93 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/Controllers/ImportExcelController.cs 309 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/DLL/BLL/BasicSettingBLL.cs 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/DLL/BLL/ExcelCheckBLL.cs 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/DLL/DAL/BasicSettingDAL.cs 182 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/DLL/DAL/ExcelCheckDAL.cs 269 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/Logs/2022-06-16.TXT 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/Models/ExcelErro.cs 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/Models/TreeDM.cs 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/Properties/PublishProfiles/FolderProfile.pubxml.user 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/Tools/ExcelList.cs 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/Tools/ExcelModelCheck.cs 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/Tools/ImportExcel.cs 910 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/Tools/ImportExcelData.cs 2368 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/Tools/NPOIHelper.cs 190 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/Tools/SeachEncode.cs 149 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/VueWebApi.csproj 166 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/VueWebApi.csproj.user 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/Web.config 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/bin/Antlr3.Runtime.pdb 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/bin/BouncyCastle.Crypto.xml 26258 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/bin/Dapper.xml 2751 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/bin/ICSharpCode.SharpZipLib.pdb 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/bin/ICSharpCode.SharpZipLib.xml 10977 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/bin/JWT.pdb 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/bin/JWT.xml 1546 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/bin/Microsoft.Bcl.AsyncInterfaces.xml 223 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/bin/Microsoft.CodeDom.Providers.DotNetCompilerPlatform.xml 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/bin/NPOI.OOXML.pdb 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/bin/NPOI.OOXML.xml 11817 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/bin/NPOI.OpenXml4Net.pdb 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/bin/NPOI.OpenXml4Net.xml 3189 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/bin/NPOI.OpenXmlFormats.pdb 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/bin/NPOI.pdb 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/bin/NPOI.xml 45803 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/bin/Newtonsoft.Json.xml 11172 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/bin/Pipelines.Sockets.Unofficial.xml 2077 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/bin/ServiceStack.Common.xml 542 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/bin/ServiceStack.Interfaces.xml 2409 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/bin/ServiceStack.Redis.xml 1624 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/bin/ServiceStack.Text.xml 1612 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/bin/StackExchange.Redis.xml 12438 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/bin/System.Buffers.xml 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/bin/System.Diagnostics.PerformanceCounter.xml 1394 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/bin/System.IO.Pipelines.xml 341 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/bin/System.Memory.xml 355 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/bin/System.Net.Http.Formatting.xml 2094 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/bin/System.Numerics.Vectors.xml 2621 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/bin/System.Runtime.CompilerServices.Unsafe.xml 200 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/bin/System.Threading.Channels.xml 225 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/bin/System.Threading.Tasks.Extensions.xml 166 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/bin/System.Web.Helpers.xml 839 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/bin/System.Web.Http.Cors.xml 179 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/bin/System.Web.Http.WebHost.xml 135 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/bin/System.Web.Http.xml 6664 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/bin/System.Web.Mvc.xml 11485 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/bin/System.Web.Optimization.xml 666 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/bin/System.Web.Razor.xml 5742 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/bin/System.Web.WebPages.Deployment.xml 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/bin/System.Web.WebPages.Razor.xml 292 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/bin/System.Web.WebPages.xml 2706 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/bin/VueWebApi.dll.config 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/bin/VueWebApi.pdb 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/bin/VueWebApi.xml 174 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/bin/log4net.xml 32450 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/obj/Debug/VueWebApi.csproj.CoreCompileInputs.cache 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/obj/Debug/VueWebApi.csproj.FileListAbsolute.txt 100 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/obj/Debug/VueWebApi.pdb 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/obj/Release/Package/PackageTmp/bin/VueWebApi.dll.config 111 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/obj/Release/Package/PackageTmp/bin/VueWebApi.pdb 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/obj/Release/Package/PackageTmp/bin/VueWebApi.xml 1372 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/obj/Release/TransformWebConfig/original/Web.config 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/obj/Release/VueWebApi.csproj.CopyComplete 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/obj/Release/VueWebApi.csproj.CoreCompileInputs.cache 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/obj/Release/VueWebApi.csproj.FileListAbsolute.txt 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/obj/Release/VueWebApi.pdb 补丁 | 查看 | 原始文档 | blame | 历史
VueWebApi/packages.config 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/NPOI.2.5.6/.signature.p7s 补丁 | 查看 | 原始文档 | blame | 历史
packages/NPOI.2.5.6/LICENSE 177 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/NPOI.2.5.6/NPOI.2.5.6.nupkg 补丁 | 查看 | 原始文档 | blame | 历史
packages/NPOI.2.5.6/Read Me.txt 137 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/NPOI.2.5.6/lib/net45/NPOI.OOXML.XML 11817 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/NPOI.2.5.6/lib/net45/NPOI.OOXML.pdb 补丁 | 查看 | 原始文档 | blame | 历史
packages/NPOI.2.5.6/lib/net45/NPOI.OpenXml4Net.XML 3189 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/NPOI.2.5.6/lib/net45/NPOI.OpenXml4Net.pdb 补丁 | 查看 | 原始文档 | blame | 历史
packages/NPOI.2.5.6/lib/net45/NPOI.OpenXmlFormats.pdb 补丁 | 查看 | 原始文档 | blame | 历史
packages/NPOI.2.5.6/lib/net45/NPOI.XML 45803 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/NPOI.2.5.6/lib/net45/NPOI.pdb 补丁 | 查看 | 原始文档 | blame | 历史
packages/NPOI.2.5.6/lib/netstandard2.0/NPOI.OOXML.pdb 补丁 | 查看 | 原始文档 | blame | 历史
packages/NPOI.2.5.6/lib/netstandard2.0/NPOI.OOXML.xml 11817 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/NPOI.2.5.6/lib/netstandard2.0/NPOI.OpenXml4Net.pdb 补丁 | 查看 | 原始文档 | blame | 历史
packages/NPOI.2.5.6/lib/netstandard2.0/NPOI.OpenXmlFormats.pdb 补丁 | 查看 | 原始文档 | blame | 历史
packages/NPOI.2.5.6/lib/netstandard2.0/NPOI.pdb 补丁 | 查看 | 原始文档 | blame | 历史
packages/NPOI.2.5.6/lib/netstandard2.0/NPOI.xml 46123 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/NPOI.2.5.6/lib/netstandard2.1/NPOI.OOXML.pdb 补丁 | 查看 | 原始文档 | blame | 历史
packages/NPOI.2.5.6/lib/netstandard2.1/NPOI.OOXML.xml 11817 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/NPOI.2.5.6/lib/netstandard2.1/NPOI.OpenXml4Net.pdb 补丁 | 查看 | 原始文档 | blame | 历史
packages/NPOI.2.5.6/lib/netstandard2.1/NPOI.OpenXmlFormats.pdb 补丁 | 查看 | 原始文档 | blame | 历史
packages/NPOI.2.5.6/lib/netstandard2.1/NPOI.pdb 补丁 | 查看 | 原始文档 | blame | 历史
packages/NPOI.2.5.6/lib/netstandard2.1/NPOI.xml 46123 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/NPOI.2.5.6/logo/120_120.jpg 补丁 | 查看 | 原始文档 | blame | 历史
packages/NPOI.2.5.6/logo/240_240.png 补丁 | 查看 | 原始文档 | blame | 历史
packages/NPOI.2.5.6/logo/32_32.jpg 补丁 | 查看 | 原始文档 | blame | 历史
packages/NPOI.2.5.6/logo/60_60.jpg 补丁 | 查看 | 原始文档 | blame | 历史
packages/Portable.BouncyCastle.1.8.9/.signature.p7s 补丁 | 查看 | 原始文档 | blame | 历史
packages/Portable.BouncyCastle.1.8.9/Portable.BouncyCastle.1.8.9.nupkg 补丁 | 查看 | 原始文档 | blame | 历史
packages/Portable.BouncyCastle.1.8.9/lib/net40/BouncyCastle.Crypto.xml 26258 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/Portable.BouncyCastle.1.8.9/lib/netstandard2.0/BouncyCastle.Crypto.xml 26258 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/SharpZipLib.1.3.3/.signature.p7s 补丁 | 查看 | 原始文档 | blame | 历史
packages/SharpZipLib.1.3.3/SharpZipLib.1.3.3.nupkg 补丁 | 查看 | 原始文档 | blame | 历史
packages/SharpZipLib.1.3.3/images/sharpziplib-nuget-256x256.png 补丁 | 查看 | 原始文档 | blame | 历史
packages/SharpZipLib.1.3.3/lib/net45/ICSharpCode.SharpZipLib.pdb 补丁 | 查看 | 原始文档 | blame | 历史
packages/SharpZipLib.1.3.3/lib/net45/ICSharpCode.SharpZipLib.xml 10977 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/SharpZipLib.1.3.3/lib/netstandard2.0/ICSharpCode.SharpZipLib.pdb 补丁 | 查看 | 原始文档 | blame | 历史
packages/SharpZipLib.1.3.3/lib/netstandard2.0/ICSharpCode.SharpZipLib.xml 10977 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packages/SharpZipLib.1.3.3/lib/netstandard2.1/ICSharpCode.SharpZipLib.pdb 补丁 | 查看 | 原始文档 | blame | 历史
packages/SharpZipLib.1.3.3/lib/netstandard2.1/ICSharpCode.SharpZipLib.xml 10977 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.vs/VueWebApi/v16/.suo
Binary files differ
VueWebApi/App_Start/SwaggerControllerDescProvider.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,89 @@
using Swashbuckle.Swagger;
using System;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Web;
using System.Xml;
namespace VueWebApi.App_Start
{
    /// <summary>
    /// swagger显示控制器的描述
    /// </summary>
    public class SwaggerControllerDescProvider : ISwaggerProvider
    {
        private readonly ISwaggerProvider _swaggerProvider;
        private static ConcurrentDictionary<string, SwaggerDocument> _cache = new ConcurrentDictionary<string, SwaggerDocument>();
        private readonly string _xml;
        /// <summary>
        ///
        /// </summary>
        /// <param name="swaggerProvider"></param>
        /// <param name="xml">xml文档路径</param>
        public SwaggerControllerDescProvider(ISwaggerProvider swaggerProvider, string xml)
        {
            _swaggerProvider = swaggerProvider;
            _xml = xml;
        }
        public SwaggerDocument GetSwagger(string rootUrl, string apiVersion)
        {
            var cacheKey = string.Format("{0}_{1}", rootUrl, apiVersion);
            SwaggerDocument srcDoc = null;
            //只读取一次
            if (!_cache.TryGetValue(cacheKey, out srcDoc))
            {
                srcDoc = _swaggerProvider.GetSwagger(rootUrl, apiVersion);
                srcDoc.vendorExtensions = new Dictionary<string, object> { { "ControllerDesc", GetControllerDesc() } };
                _cache.TryAdd(cacheKey, srcDoc);
            }
            return srcDoc;
        }
        /// <summary>
        /// ä»ŽAPI文档中读取控制器描述
        /// </summary>
        /// <returns>所有控制器描述</returns>
        public ConcurrentDictionary<string, string> GetControllerDesc()
        {
            string xmlpath = _xml;
            ConcurrentDictionary<string, string> controllerDescDict = new ConcurrentDictionary<string, string>();
            if (File.Exists(xmlpath))
            {
                XmlDocument xmldoc = new XmlDocument();
                xmldoc.Load(xmlpath);
                string type = string.Empty, path = string.Empty, controllerName = string.Empty;
                string[] arrPath;
                int length = -1, cCount = "Controller".Length;
                XmlNode summaryNode = null;
                foreach (XmlNode node in xmldoc.SelectNodes("//member"))
                {
                    type = node.Attributes["name"].Value;
                    if (type.StartsWith("T:"))
                    {
                        //控制器
                        arrPath = type.Split('.');
                        length = arrPath.Length;
                        controllerName = arrPath[length - 1];
                        if (controllerName.EndsWith("Controller"))
                        {
                            //获取控制器注释
                            summaryNode = node.SelectSingleNode("summary");
                            string key = controllerName.Remove(controllerName.Length - cCount, cCount);
                            if (summaryNode != null && !string.IsNullOrEmpty(summaryNode.InnerText) && !controllerDescDict.ContainsKey(key))
                            {
                                controllerDescDict.TryAdd(key, summaryNode.InnerText.Trim());
                            }
                        }
                    }
                }
            }
            return controllerDescDict;
        }
    }
}
VueWebApi/Controllers/BasicSettingController.cs
@@ -2,6 +2,7 @@
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Net.Http;
@@ -96,6 +97,7 @@
            return TJson.toJson(mes);
        }
        #endregion
        #region[用户清单查询]
@@ -206,6 +208,64 @@
            //objs = Serializer.Deserialize<List<RoleUserSubmit>>(json);
            mes= BasicSettingBLL.SaveUserAssoctRole(usercode, json);
            return TJson.toJson(mes);
        }
        #endregion
        #region[用户清单导入]
        public HttpResponseMessage ImportUserExcel(HttpPostedFileBase files)
        {
            string savePath;
            if (files == null || files.ContentLength <= 0)
            {
                mes.code = "300";
                mes.Message = "上传文件内容不能为空!";
            }
            else
            {
                var username = HttpContext.Current.Request.Cookies["admin"].Value.ToString(); //登录用户名
                string filename = Path.GetFileName(files.FileName);
                int filesize = files.ContentLength;//获取上传文件的大小单位为字节byte
                string fileEx = System.IO.Path.GetExtension(filename);//获取上传文件的扩展名
                int Maxsize = 4000 * 1024;//定义上传文件的最大空间大小为4M
                string FileType = ".xls,.xlsx";//定义上传文件的类型字符串
                if (!FileType.Contains(fileEx))
                {
                    mes.code = "300";
                    mes.Message = "文件类型不对,只能导入xls和xlsx格式的文件!";
                }
                else
                {
                    if (filesize >= Maxsize)
                    {
                        mes.code = "300";
                        mes.Message = "上传文件超过4M,不能上传!";
                    }
                    else
                    {
                        string path = System.Web.HttpContext.Current.Server.MapPath("/File/excel/");
                        if (Directory.Exists(path) == false)//如果不存在就创建file文件夹
                        {
                            Directory.CreateDirectory(path); //添加文件夹
                        }
                        savePath = Path.Combine(path, filename);
                        if (Directory.Exists(savePath) == true)  //如果存在重名文件就提示
                        {
                            mes.code = "300";
                            mes.Message = "已存在同名文件";
                        }
                        else
                        {
                            files.SaveAs(savePath);    //将选择的文件保存到指定文件夹下
                            string FilesName = System.Web.HttpContext.Current.Server.MapPath("/File/excel/" + filename);
                            mes = BasicSettingBLL.ImportUserExcel(username,FilesName);
                        }
                    }
                }
            }
            return TJson.toJson(mes);
        }
        #endregion
@@ -366,5 +426,38 @@
        }
        #endregion
        #region[角色清单关联功能查询]
        /// <summary>
        /// ç”¨æˆ·æ¸…单关联功能查询
        /// </summary>
        /// <param name="rolecode">角色编码</param>
        /// <param name="type">操作端分类编码</param>
        /// <returns></returns>
        [Route(template: "RoleAssociationRight")]
        [HttpGet]
        public HttpResponseMessage RoleAssociationRight(string rolecode,string type)
        {
            mes = BasicSettingBLL.RoleAssociationRight(rolecode,type);
            return TJson.toJson(mes);
        }
        #endregion
        #region[角色清单关联功能保存]
        /// <summary>
        /// è§’色清单关联功能保存
        /// </summary>
        /// <param name="rolecode">角色编码</param>
        /// <param name="usercode">登录用户编码</param>
        /// <param name="json">提交数据对象</param>
        /// <returns></returns>
        [Route(template: "SaveUserAssoctRight")]
        [HttpPost]
        public HttpResponseMessage SaveUserAssoctRight(string rolecode,string usercode, List<TreeDM> json)
        {
            mes = BasicSettingBLL.SaveUserAssoctRight(rolecode, usercode, json);
            return TJson.toJson(mes);
        }
        #endregion
    }
}
VueWebApi/Controllers/ImportExcelController.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,309 @@
using NPOI.HSSF.UserModel;
using NPOI.SS.UserModel;
using NPOI.XSSF.UserModel;
using System;
using System.Collections.Generic;
using System.Data;
using System.IO;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web;
using System.Web.Http;
using VueWebApi.DLL.BLL;
using VueWebApi.Models;
using VueWebApi.Tools;
namespace VueWebApi.Controllers
{
    [RoutePrefix(prefix: "api/BasicSetting")]
    [ControllerGroup("Excel导入模板验证", "在线接口")]
    public class ImportExcelController : ApiController
    {
        //定义全局信息返回变量
        ToMessage mes = new ToMessage();
        #region [Excel导入模板下载]
        /// <summary>
        /// Excel导入模板下载
        /// </summary>
        /// <param name="FileCode">文件编码</param>
        /// <returns></returns>
        [Route(template: "DownLoadExcel")]
        [HttpGet]
        public HttpResponseMessage DownLoadExcel(string FileCode = null)
        {
            List<ScoreReport> list = ExcelList.ExcelData();
            list = list.Where(s => s.FileCode == FileCode).ToList();
            var filename = list[0].FileName + ".xls";
            string fileip = System.Configuration.ConfigurationManager.AppSettings["FileIP"];
            var msg = fileip + "/apis/Excel/" + filename;
            mes.code = "200";
            mes.data = msg;
            return TJson.toJson(mes);
        }
        #endregion
        #region [Excel导入文件上传、模板验证、数据量、验证]
        /// <summary>
        /// Excel导入文件上传、模板验证、数据量、验证
        /// </summary>
        /// <param name="files">上传文件</param>
        /// <param name="FileCode">文件编码</param>
        /// <returns></returns>
        [Route(template: "ExcelModelCheck")]
        [HttpGet]
        public HttpResponseMessage ExcelModelCheck(HttpPostedFileBase files, string FileCode = null)
        {
            ExcelModelCheck list = new ExcelModelCheck();
            Dictionary<object, object> dList = new Dictionary<object, object>();
            list.json1 = ExcelCheckUpload(files, FileCode);  //文件上传
            if (list.json1.code == "300")
            {
                list.json1 = list.json1;
                return TJson.toJson(list);
            }
            list.json2 = ExcelCheck(files, FileCode);  //模板验证
            if (list.json2.code == "300")
            {
                list.json2 = list.json2;
                return TJson.toJson(list);
            }
            list.json3 = ExcelCheckCount(files, FileCode);  //数据量验证
            if (list.json3.code == "300")
            {
                list.json3 = list.json3;
                return TJson.toJson(list);
            }
            return TJson.toJson(list);
        }
        #endregion
        #region [Excel导入模板上传]
        /// <summary>
        /// Excel导入模板上传
        /// </summary>
        /// <param name="files">上传文件</param>
        /// <param name="FileCode">文件编码</param>
        /// <returns></returns>
        [Route(template: "ExcelCheckUpload")]
        [HttpGet]
        [HiddenApi]
        public ToMessage ExcelCheckUpload(HttpPostedFileBase files, string FileCode = null)
        {
            try
            {
                string savePath;
                string filename = Path.GetFileName(files.FileName);
                string path = System.Web.HttpContext.Current.Server.MapPath("/InExcel/" + FileCode + "/");
                string fileEx = System.IO.Path.GetExtension(filename);//获取上传文件的扩展名
                string FileType = ".xls,.xlsx";//定义上传文件的类型字符串
                savePath = Path.Combine(path, filename);
                if (!FileType.Contains(fileEx))
                {
                    mes.code = "300";
                    mes.Message = "文件类型不对,上传失败!";
                    System.IO.File.Delete(savePath);//执行IO文件删除,需引入命名空间System.IO;
                    return mes;
                }
                else if (Directory.Exists(path) == false)//如果不存在就创建file文件夹
                {
                    Directory.CreateDirectory(path); //添加文件夹
                }
                else if (Directory.Exists(savePath) == true)  //如果存在重名文件就提示
                {
                    System.IO.File.Delete(savePath);//执行IO文件删除,需引入命名空间System.IO;
                    files.SaveAs(savePath);    //将选择的文件保存到指定文件夹下
                    mes.code = "200";
                    mes.Message = "文件上传成功!";
                }
                else
                {
                    files.SaveAs(savePath);    //将选择的文件保存到指定文件夹下
                    mes.code = "200";
                    mes.Message = "文件上传成功!";
                }
            }
            catch (Exception e)
            {
                mes.code = "300";
                mes.Message = e.Message;
            }
            return mes;
        }
        #endregion
        #region [Excel导入模板验证]
        /// <summary>
        /// Excel导入模板验证
        /// </summary>
        /// <param name="files">上传文件</param>
        /// <param name="FileCode">文件编码</param>
        /// <returns></returns>
        [Route(template: "ExcelCheckUpload")]
        [HttpGet]
        [HiddenApi]
        public ToMessage ExcelCheck(HttpPostedFileBase files, string FileCode = null)
        {
            try
            {
                string savePath;
                string filename = Path.GetFileName(files.FileName);
                string path = System.Web.HttpContext.Current.Server.MapPath("/InExcel/" + FileCode + "/");
                savePath = Path.Combine(path, filename);
                if (Directory.Exists(path) == false)//如果不存在就创建file文件夹
                {
                    Directory.CreateDirectory(path); //添加文件夹
                }
                else
                {
                    mes = ExcelCheckBLL.ExcelCheck(FileCode, savePath);
                    if (mes.code == "300") //上传模板不是指定模板
                    {
                        System.IO.File.Delete(savePath);//执行IO文件删除,需引入命名空间System.IO;
                        return mes;
                    }
                }
                return mes;
            }
            catch (Exception e)
            {
                mes.code = "300";
                mes.Message = e.Message;
            }
            return mes;
        }
        #endregion
        #region[Excel导入模板数据量验证]
        /// <summary>
        /// Excel导入模板数据量验证
        /// </summary>
        /// <param name="files">上传文件</param>
        /// <param name="FileCode">文件编码</param>
        /// <returns></returns>
        [HiddenApi]
        public ToMessage ExcelCheckCount(HttpPostedFileBase files, string FileCode = null)
        {
            string savePath;
            string filename = Path.GetFileName(files.FileName);
            int filesize = files.ContentLength;//获取上传文件的大小单位为字节byte
            string fileEx = System.IO.Path.GetExtension(filename);//获取上传文件的扩展名
            int Maxsize = 10000 * 1024;//定义上传文件的最大空间大小为10M
            string path = System.Web.HttpContext.Current.Server.MapPath("/InExcel/" + FileCode + "/");
            savePath = Path.Combine(path, filename);
            IWorkbook Workbook;
            DataTable table = new DataTable();
            using (FileStream fileStream = new FileStream(savePath, FileMode.Open, FileAccess.Read))
            {
                //XSSFWorkbook é€‚用XLSX格式,HSSFWorkbook é€‚用XLS格式
                string fileExt = Path.GetExtension(savePath).ToLower();
                if (fileExt == ".xls")
                {
                    Workbook = new HSSFWorkbook(fileStream);
                }
                else if (fileExt == ".xlsx")
                {
                    Workbook = new XSSFWorkbook(fileStream);
                }
                else
                {
                    Workbook = null;
                }
            }
            //定位在第一个sheet
            ISheet sheet = Workbook.GetSheetAt(0);
            //sheet.ShiftRows(sheet.FirstRowNum-1, sheet.LastRowNum,1);
            //第一行为标题行
            IRow headerRow = sheet.GetRow(0);
            int cellCount = headerRow.LastCellNum;
            //int rowCount0 = sheet.FirstRowNum;
            int rowCount = sheet.LastRowNum;
            if (files == null || files.ContentLength <= 0)
            {
                mes.code = "300";
                mes.Message = "文件不能为空!";
                System.IO.File.Delete(savePath);//执行IO文件删除,需引入命名空间System.IO;
                return mes;
            }
            mes = ImportExcel.ExcelCheckCountSum(savePath); //空数据文件验证
            if (mes.code == "300")
            {
                mes.code = "300";
                mes.Message = "文件不能为空!";
                System.IO.File.Delete(savePath);//执行IO文件删除,需引入命名空间System.IO;
                return mes;
            }
            if (filesize >= Maxsize)
            {
                mes.code = "300";
                mes.Message = "上传文件超过10M,不能上传";
                System.IO.File.Delete(savePath);//执行IO文件删除,需引入命名空间System.IO;
                return mes;
            }
            mes.code = "200";
            mes.Message = "数据量验证通过";
            return mes;
        }
        #endregion
        #region [Excel导入数据验证]
        /// <summary>
        /// Excel导入数据验证
        /// </summary>
        /// <param name="FileCode">文件编码</param>
        /// <param name="FileName">文件名称</param>
        /// <returns></returns>
        [HiddenApi]
        public HttpResponseMessage ExcelCheckData(string FileCode = null, string FileName = null)
        {
            string message = "";
            string StuCode = "";
            int count = 0;
            List<ExcelErro> list = new List<ExcelErro>();
            string savePath;
            string filename = FileName;
            string path = System.Web.HttpContext.Current.Server.MapPath("/InExcel/" + FileCode + "/");
            savePath = Path.Combine(path, filename);
            list = ExcelCheckBLL.ExcelCheckData(FileCode, savePath, out StuCode, out message, out count);
            if (list.Count > 0)
            {
                System.IO.File.Delete(savePath);//执行IO文件删除,需引入命名空间System.IO;
            }
            Dictionary<object, object> dList = new Dictionary<object, object>();
            dList.Add("code", StuCode);
            dList.Add("Message", message);
            dList.Add("Count", count);
            dList.Add("list", list);
            return TJson.toJson(dList);
        }
        #endregion
        #region【Excel导入数据】
        /// <summary>
        /// Excel导入数据
        /// </summary>
        /// <param name="FileCode">文件编码</param>
        /// <param name="FileName">文件名称</param>
        /// <returns></returns>
        [HiddenApi]
        public HttpResponseMessage ExcelImportSubmit(string FileCode = null, string FileName = null)
        {
            var username = HttpContext.Current.Request.Cookies["admin"].Value.ToString(); //登录用户名
            string savePath;
            string filename = FileName;
            string path = System.Web.HttpContext.Current.Server.MapPath("/InExcel/" + FileCode + "/");
            savePath = Path.Combine(path, filename);
            mes = ExcelCheckBLL.ExcelImportSubmit(FileCode, savePath, username);
            return TJson.toJson(mes);
        }
        #endregion
    }
}
VueWebApi/DLL/BLL/BasicSettingBLL.cs
@@ -83,6 +83,13 @@
        }
        #endregion
        #region[用户清单导入]
        public static ToMessage ImportUserExcel(string username, string filesName)
        {
            return BasicSettingDAL.ImportUserExcel(username, filesName);
        }
        #endregion
        #region[角色类型查询]
@@ -140,5 +147,19 @@
            return BasicSettingDAL.SaveRoleAssociationUser(rolecode, json);
        }
        #endregion
        #region[角色清单关联功能查询]
        public static ToMessage RoleAssociationRight(string rolecode,string type)
        {
            return BasicSettingDAL.RoleAssociationRight(rolecode, type);
        }
        #endregion
        #region [角色清单关联功能保存]
        public static ToMessage SaveUserAssoctRight(string rolecode,string usercode, List<TreeDM> json)
        {
            return BasicSettingDAL.SaveUserAssoctRight(rolecode, usercode, json);
        }
        #endregion
    }
}
VueWebApi/DLL/BLL/ExcelCheckBLL.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,35 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Principal;
using System.Web;
using VueWebApi.DLL.DAL;
using VueWebApi.Models;
using VueWebApi.Tools;
namespace VueWebApi.DLL.BLL
{
    public class ExcelCheckBLL
    {
        #region【Excel导入模板验证】
        public static ToMessage ExcelCheck(string fileCode, string savePath)
        {
            return ExcelCheckDAL.ExcelCheck(fileCode, savePath);
        }
        #endregion
        #region[Excel导入数据验证]
        public static List<ExcelErro> ExcelCheckData(string fileCode, string savePath, out string stuCode, out string message, out int count)
        {
            return ExcelCheckDAL.ExcelCheckData(fileCode, savePath, out stuCode, out message, out count);
        }
        #endregion
        #region[Excel导入数据]
        public static ToMessage ExcelImportSubmit(string fileCode, string savePath, string username)
        {
            return ExcelCheckDAL.ExcelImportSubmit(fileCode, savePath, username);
        }
        #endregion
    }
}
VueWebApi/DLL/DAL/BasicSettingDAL.cs
@@ -84,6 +84,7 @@
        #region [组织架构查找上级单位]
        public static ToMessage PrentOrganization(string orgcode)
        {
            var sql = "";
            var dynamicParams = new DynamicParameters();
            string search = "";
            try
@@ -116,11 +117,14 @@
                        dynamicParams.Add("@orgcode", orgcode);
                        break;
                    default:
                        orgcode = "";
                        search += "and description=@orgcode ";
                        dynamicParams.Add("@orgcode", orgcode);
                        break;
                }
                var sql = @"select roletype_code,roletype_name
                            from TRoleType
                            where  A.is_delete<>'1' " + search;
                   sql = @"select id,org_code,org_name
                            from TOrganization
                            where  is_delete<>'1' " + search;
                var data = DapperHelper.selectdata(sql, dynamicParams);
                mes.code = "200";
@@ -564,6 +568,68 @@
        }
        #endregion
        #region[用户清单导入]
        public static ToMessage ImportUserExcel(string username, string filesName)
        {
            var sql = "";
            List<object> list = new List<object>();
            DataTable ds = new DataTable();
            var dynamicParams = new DynamicParameters();
            try
            {
                ds = NPOIHelper.GetExcelDatatable(filesName);           //调用自定义方法
                int rowsnum = ds.Rows.Count;
                if (rowsnum == 0)
                {
                    mes.code = "300";
                    mes.Message = "Excel表格为空,无数据!";
                }
                else
                {
                    list.Clear();
                    for (int i = 0; i < ds.Rows.Count; i++)
                    {
                        if (ds.Rows[i][1].ToString() != "" && ds.Rows[i][1].ToString() != null)
                        {
                            sql = @"insert into TUser(usercode,username,enable,password,mobile,email,lm_user,lm_date,wagetype,stu_torgcode)
                                    values(@usercode,@username,@enable,@password,@mobile,@email,@lm_user,@lm_date,@wagetype,@stu_torgcode)";
                            dynamicParams.Add("@usercode", ds.Rows[i][1].ToString());
                            dynamicParams.Add("@username", ds.Rows[i][2].ToString());
                            dynamicParams.Add("@enable", ds.Rows[i][3].ToString());
                            dynamicParams.Add("@password", ds.Rows[i][4].ToString());
                            dynamicParams.Add("@mobile", ds.Rows[i][5].ToString());
                            dynamicParams.Add("@email", ds.Rows[i][6].ToString());
                            dynamicParams.Add("@lm_user", username);
                            dynamicParams.Add("@lm_date", DateTime.Now.ToString());
                            dynamicParams.Add("@wagetype", ds.Rows[i][7].ToString());
                            dynamicParams.Add("@stu_torgcode", ds.Rows[i][8].ToString());
                            list.Add(new { str = sql, parm = dynamicParams });
                        }
                    }
                    bool aa = DapperHelper.DoTransaction(list);
                    if (aa)
                    {
                        mes.code = "200";
                        mes.Message = "导入成功!";
                    }
                    else
                    {
                        mes.code = "300";
                        mes.Message = "导入失败!";
                    }
                }
            }
            catch (Exception e)
            {
                mes.code = "300";
                mes.Message = e.Message;
            }
            return mes;
        }
        #endregion
        #region[角色类型查询]
@@ -895,9 +961,14 @@
                list.Clear();
                if (json == null || json.Count <= 0)
                {
                    mes.code = "300";
                    mes.Message = "请先选择关联角色的用户信息";
                    return mes;
                    //清除用户关联角色表数据
                    sql = @"delete TUserRoleRelation where role_code=@rolecode";
                    dynamicParams.Add("@rolecode", rolecode);
                    list.Add(new { str = sql, parm = dynamicParams });
                    //标记角色表关联用户标识
                    sql = @"update TRole set is_user='N' where role_code=@rolecode";
                    dynamicParams.Add("@rolecode", rolecode);
                    list.Add(new { str = sql, parm = dynamicParams });
                }
                else
                {
@@ -939,6 +1010,105 @@
        }
        #endregion
        #region[角色清单关联功能查询]
        public static ToMessage RoleAssociationRight(string rolecode,string type)
        {
            Dictionary<object, object> dList = new Dictionary<object, object>();
            List<object> list=new List<object>();
            try
            {
                if (type == "" || type == null)
                {
                    list.Add(SeachEncode.RightLocation(rolecode, "PC"));
                    list.Add(SeachEncode.RightLocation(rolecode, "APP"));
                }
                else if (type == "APP")
                {
                    list.Add(SeachEncode.RightLocation(rolecode, type));
                }
                else {
                    list.Add(SeachEncode.RightLocation(rolecode, type));
                }
                mes.code = "200";
                mes.Message = "查询成功!";
                mes.data = list;
            }
            catch (Exception e)
            {
                mes.code = "300";
                mes.Message = e.Message;
            }
            return mes;
        }
        #endregion
        #region [角色清单关联功能保存]
        public static ToMessage SaveUserAssoctRight(string rolecode,string usercode, List<TreeDM> json)
        {
            var sql = "";
            List<object> list = new List<object>();
            var dynamicParams = new DynamicParameters();
            try
            {
                list.Clear();
                if (json == null || json.Count <= 0)
                {
                    //清除用户关联功能表数据
                    sql = @"delete TRoleRightRelation where role_code=@rolecode";
                    dynamicParams.Add("@rolecode", rolecode);
                    list.Add(new { str = sql, parm = dynamicParams });
                    //标记角色表关联功能标识
                    sql = @"update TRole set is_right='N' where role_code=@rolecode";
                    dynamicParams.Add("@rolecode", rolecode);
                    list.Add(new { str = sql, parm = dynamicParams });
                }
                else
                {
                    //清除角色关联功能表数据
                    sql = @"delete TRoleRightRelation where role_code=@rolecode";
                    dynamicParams.Add("@rolecode", rolecode);
                    list.Add(new { str = sql, parm = dynamicParams });
                    //循环写入用户关联角色表
                    for (int i = 0; i < json.Count; i++)  //PC、APP层
                    {
                        for (int j = 0; j < json[i].children.Count; j++) //一级菜单
                        {
                            for (int k = 0; k < json[i].children[j].children.Count; k++) //二级菜单
                            {
                                sql = @"insert into TRoleRightRelation(role_code,right_code,lm_user,lm_date) values(@role_code,@right_code,@lm_user,@lm_date)";
                                dynamicParams.Add("@role_code", rolecode);
                                dynamicParams.Add("@right_code", json[i].children[j].children[k].code);
                                dynamicParams.Add("@lm_user", usercode);
                                dynamicParams.Add("@lm_date", DateTime.Now.ToString());
                                list.Add(new { str = sql, parm = dynamicParams });
                            }
                        }
                    }
                    //标记角色表关联用户标识
                    sql = @"update TRole set is_right='Y' where role_code=@rolecode";
                    dynamicParams.Add("@rolecode", rolecode);
                    list.Add(new { str = sql, parm = dynamicParams });
                }
                bool aa = DapperHelper.DoTransaction(list);
                if (aa)
                {
                    mes.code = "200";
                    mes.Message = "操作成功!";
                }
                else
                {
                    mes.code = "300";
                    mes.Message = "操作失败!";
                }
            }
            catch (Exception e)
            {
                mes.code = "300";
                mes.Message = e.Message;
            }
            return mes;
        }
        #endregion
    }
}
VueWebApi/DLL/DAL/ExcelCheckDAL.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,269 @@
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web;
using VueWebApi.Models;
using VueWebApi.Tools;
namespace VueWebApi.DLL.DAL
{
    public class ExcelCheckDAL
    {
        public static ToMessage mes = new ToMessage(); //定义全局返回信息对象
        #region【Excel导入模板验证】
        public static ToMessage ExcelCheck(string fileCode, string savePath)
        {
            string StuCode = "";
            string Message = "";
            switch (fileCode)
            {
                case "1": //角色权限
                    Message = ImportExcelData.One(savePath, out StuCode);
                    break;
                case "2"://用户角色
                    Message = ImportExcelData.Two(savePath, out StuCode);
                    break;
                case "3"://工位清单
                    Message = ImportExcelData.Three(savePath, out StuCode);
                    break;
                case "4"://往来单位
                    Message = ImportExcelData.Four(savePath, out StuCode);
                    break;
                case "6.1"://仓库定义
                    Message = ImportExcelData.SixOne(savePath, out StuCode);
                    break;
                case "6.2"://库位定义
                    Message = ImportExcelData.SixTwo(savePath, out StuCode);
                    break;
                case "7"://容器定义
                    Message = ImportExcelData.Seven(savePath, out StuCode);
                    break;
                case "8"://存货档案
                    Message = ImportExcelData.Eight(savePath, out StuCode);
                    break;
                case "9"://设备清单
                    Message = ImportExcelData.Nine(savePath, out StuCode);
                    break;
                case "10"://设备点检
                    Message = ImportExcelData.Ten(savePath, out StuCode);
                    break;
                case "11"://设备保养
                    Message = ImportExcelData.Eleven(savePath, out StuCode);
                    break;
                case "12"://工装清单
                    Message = ImportExcelData.Twelve(savePath, out StuCode);
                    break;
                case "13"://工装点检
                    Message = ImportExcelData.Thirteen(savePath, out StuCode);
                    break;
                case "14"://工装保养
                    Message = ImportExcelData.Fourteen(savePath, out StuCode);
                    break;
                case "15"://工序定义
                    Message = ImportExcelData.Fifteen(savePath, out StuCode);
                    break;
                case "16"://工艺路线
                    Message = ImportExcelData.Sixteen(savePath, out StuCode);
                    break;
                case "17"://质检标准
                    Message = ImportExcelData.Seventeen(savePath, out StuCode);
                    break;
                case "18"://缺陷定义
                    Message = ImportExcelData.Eighteen(savePath, out StuCode);
                    break;
                case "19"://生产订单
                    Message = ImportExcelData.Nineteen(savePath, out StuCode);
                    break;
                case "20"://库存查询
                    Message = ImportExcelData.Twenty(savePath, out StuCode);
                    break;
                case "21"://物料清单
                    Message = ImportExcelData.TwentyOne(savePath, out StuCode);
                    break;
                default:
                    break;
            }
            mes.code = StuCode;
            mes.Message = Message;
            return mes;
        }
        #endregion
        #region[Excel导入数据验证]
        public static List<ExcelErro> ExcelCheckData(string fileCode, string savePath, out string stuCode, out string message, out int count)
        {
            stuCode = "";
            message = "";
            count = 0;
            List<ExcelErro> list = new List<ExcelErro>();
            switch (fileCode)
            {
                case "1": //角色权限
                    list = ImportExcelData.OneData(savePath, out stuCode, out message, out count);
                    break;
                case "2"://用户角色
                    list = ImportExcelData.TwoData(savePath, out stuCode, out message, out count);
                    break;
                case "3"://工位清单
                    list = ImportExcelData.ThreeData(savePath, out stuCode, out message, out count);
                    break;
                case "4"://供方清单
                    list = ImportExcelData.FourData(savePath, out stuCode, out message, out count);
                    break;
                case "5"://客户清单
                    list = ImportExcelData.FiveData(savePath, out stuCode, out message, out count);
                    break;
                case "6.1"://仓库定义
                    list = ImportExcelData.SixOneData(savePath, out stuCode, out message, out count);
                    break;
                case "6.2"://库区定义
                    list = ImportExcelData.SixTwoData(savePath, out stuCode, out message, out count);
                    break;
                case "6.3"://库位定义
                    list = ImportExcelData.SixThreeData(savePath, out stuCode, out message, out count);
                    break;
                case "7"://容器定义
                    list = ImportExcelData.SevenData(savePath, out stuCode, out message, out count);
                    break;
                case "8"://存货档案
                    list = ImportExcelData.EightData(savePath, out stuCode, out message, out count);
                    break;
                case "9"://设备清单
                    list = ImportExcelData.NineData(savePath, out stuCode, out message, out count);
                    break;
                case "10"://设备点检
                    list = ImportExcelData.TenData(savePath, out stuCode, out message, out count);
                    break;
                case "11"://设备保养
                    list = ImportExcelData.ElevenData(savePath, out stuCode, out message, out count);
                    break;
                case "12"://工装清单
                    list = ImportExcelData.TwelveData(savePath, out stuCode, out message, out count);
                    break;
                case "13"://工装点检
                    list = ImportExcelData.ThirteenData(savePath, out stuCode, out message, out count);
                    break;
                case "14"://工装保养
                    list = ImportExcelData.FourteenData(savePath, out stuCode, out message, out count);
                    break;
                case "15"://工序定义
                    list = ImportExcelData.FifteenData(savePath, out stuCode, out message, out count);
                    break;
                case "16"://工艺路线
                    list = ImportExcelData.SixteenData(savePath, out stuCode, out message, out count);
                    break;
                case "17"://质检标准
                    list = ImportExcelData.SeventeenData(savePath, out stuCode, out message, out count);
                    break;
                case "18"://缺陷定义
                    list = ImportExcelData.EighteenData(savePath, out stuCode, out message, out count);
                    break;
                case "19"://生产订单
                    list = ImportExcelData.NineteenData(savePath, out stuCode, out message, out count);
                    break;
                case "20"://库存查询
                    list = ImportExcelData.TwentyData(savePath, out stuCode, out message, out count);
                    break;
                case "21"://物料清单
                    list = ImportExcelData.TwentyOneData(savePath, out stuCode, out message, out count);
                    break;
                default:
                    break;
            }
            return list;
        }
        #endregion
        #region【Excel导入数据验证】
        public static ToMessage ExcelImportSubmit(string FileCode, string savePath, string User)
        {
            string StuCode = "";
            string Message = "";
            switch (FileCode)
            {
                case "1": //角色权限
                    Message = ImportExcelData.OneSubmit(savePath, User, out StuCode);
                    break;
                case "2"://用户角色
                    Message = ImportExcelData.TwoSubmit(savePath, User, out StuCode);
                    break;
                case "3"://工位清单
                    Message = ImportExcelData.ThreeSubmit(savePath, User, out StuCode);
                    break;
                case "4"://供方清单
                    Message = ImportExcelData.FourSubmit(savePath, User, out StuCode);
                    break;
                case "5"://客户清单
                    Message = ImportExcelData.FiveSubmit(savePath, User, out StuCode);
                    break;
                case "6.1"://仓库定义
                    Message = ImportExcelData.SixOneSubmit(savePath, User, out StuCode);
                    break;
                case "6.2"://库区定义
                    Message = ImportExcelData.SixTwoSubmit(savePath, User, out StuCode);
                    break;
                case "6.3"://库位定义
                    Message = ImportExcelData.SixThreeSubmit(savePath, User, out StuCode);
                    break;
                case "7"://容器定义
                    Message = ImportExcelData.SevenSubmit(savePath, User, out StuCode);
                    break;
                case "8"://存货档案
                    Message = ImportExcelData.EightSubmit(savePath, User, out StuCode);
                    break;
                case "9"://设备清单
                    Message = ImportExcelData.NineSubmit(savePath, User, out StuCode);
                    break;
                case "10"://设备点检
                    Message = ImportExcelData.TenSubmit(savePath, User, out StuCode);
                    break;
                case "11"://设备保养
                    Message = ImportExcelData.ElevenSubmit(savePath, User, out StuCode);
                    break;
                case "12"://工装清单
                    Message = ImportExcelData.TwelveSubmit(savePath, User, out StuCode);
                    break;
                case "13"://工装点检
                    Message = ImportExcelData.ThirteenSubmit(savePath, User, out StuCode);
                    break;
                case "14"://工装保养
                    Message = ImportExcelData.FourteenSubmit(savePath, User, out StuCode);
                    break;
                case "15"://工序定义
                    Message = ImportExcelData.FifteenSubmit(savePath, User, out StuCode);
                    break;
                case "16"://工艺路线
                    Message = ImportExcelData.SixteenSubmit(savePath, User, out StuCode);
                    break;
                case "17"://质检标准
                    Message = ImportExcelData.SeventeenSubmit(savePath, User, out StuCode);
                    break;
                case "18"://缺陷定义
                    Message = ImportExcelData.EighteenSubmit(savePath, User, out StuCode);
                    break;
                case "19"://生产订单
                    Message = ImportExcelData.NineteenSubmit(savePath, User, out StuCode);
                    break;
                case "20"://库存查询
                    Message = ImportExcelData.TwentySubmit(savePath, User, out StuCode);
                    break;
                case "21"://物料清单
                    Message = ImportExcelData.TwentyOneSubmit(savePath, User, out StuCode);
                    break;
                default:
                    break;
            }
            mes.code = StuCode;
            mes.Message = Message;
            return mes;
        }
        #endregion
    }
}
VueWebApi/Logs/2022-06-16.TXT
VueWebApi/Models/ExcelErro.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace VueWebApi.Models
{
    public class ExcelErro
    {
        public string Seq { get; set; }   //序号
        public string RoeNumber { get; set; }   //行号
        public string ErrorField { get; set; }  //错误字段
        public string ErrorCont { get; set; }   //错误详情
    }
}
VueWebApi/Models/TreeDM.cs
@@ -7,18 +7,22 @@
{
    public class TreeDM
    {
        public string id { get; set; }
        public string code { get; set; }
        public string name { get; set; }
        public string type { get; set; }
        public string flag { get; set; }
        public List<TreeDM> children { get; set; }
        public List<AA> children1 { get; set; }
        public List<TreeDMOne> children { get; set; }
    }
    public class AA
    public class TreeDMOne
    {
        public string code { set; get; }
        public string name { set; get; }
        public string flag { get; set; }   //是否分配角色
        public string flag { get; set; }
        public List<TreeDMTwo> children { get; set; }
    }
    public class TreeDMTwo
    {
        public string code { set; get; }
        public string name { set; get; }
        public string flag { get; set; }
    }
}
VueWebApi/Properties/PublishProfiles/FolderProfile.pubxml.user
@@ -284,6 +284,9 @@
    <File Include="bin/System.Memory.dll">
      <publishTime>02/19/2020 10:05:18</publishTime>
    </File>
    <File Include="bin/System.Net.Http.dll">
      <publishTime>11/05/2016 18:56:30</publishTime>
    </File>
    <File Include="bin/System.Net.Http.Formatting.dll">
      <publishTime>11/28/2018 13:00:36</publishTime>
    </File>
@@ -336,10 +339,16 @@
      <publishTime>11/28/2018 13:04:24</publishTime>
    </File>
    <File Include="bin/VueWebApi.dll">
      <publishTime>06/15/2022 12:07:16</publishTime>
      <publishTime>06/16/2022 14:26:06</publishTime>
    </File>
    <File Include="bin/VueWebApi.dll.config">
      <publishTime>06/15/2022 15:31:43</publishTime>
    </File>
    <File Include="bin/VueWebApi.pdb">
      <publishTime>06/15/2022 12:07:16</publishTime>
      <publishTime>06/16/2022 14:26:06</publishTime>
    </File>
    <File Include="bin/VueWebApi.xml">
      <publishTime>06/16/2022 14:26:01</publishTime>
    </File>
    <File Include="bin/WebActivatorEx.dll">
      <publishTime>02/08/2013 16:42:28</publishTime>
@@ -459,7 +468,7 @@
      <publishTime>06/10/2022 08:20:31</publishTime>
    </File>
    <File Include="Scripts/swagger_lang.js">
      <publishTime>06/10/2022 08:35:21</publishTime>
      <publishTime>06/16/2022 13:39:23</publishTime>
    </File>
    <File Include="Views/Shared/Error.cshtml">
      <publishTime>06/10/2022 08:20:24</publishTime>
@@ -474,7 +483,7 @@
      <publishTime>06/10/2022 08:20:24</publishTime>
    </File>
    <File Include="Web.config">
      <publishTime>06/15/2022 12:07:16</publishTime>
      <publishTime>06/15/2022 15:44:26</publishTime>
    </File>
  </ItemGroup>
</Project>
VueWebApi/Tools/ExcelList.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,50 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace VueWebApi.Tools
{
    public class ExcelList
    {
        public static List<ScoreReport> ExcelData()
        {
            List<ScoreReport> list = new List<ScoreReport>
            {
                new ScoreReport("1","角色清单"),
                new ScoreReport("2","用户清单"),
                new ScoreReport("3","工位清单"),
                new ScoreReport("4","往来单位"),
                new ScoreReport("6.1","仓库定义"),
                new ScoreReport("6.2","库位定义"),
                new ScoreReport("7","容器定义"),
                new ScoreReport("8","存货档案"),
                new ScoreReport("9","设备清单"),
                new ScoreReport("10","设备点检"),
                new ScoreReport("11","设备保养"),
                new ScoreReport("12","工装清单"),
                new ScoreReport("13","工装点检"),
                new ScoreReport("14","工装保养"),
                new ScoreReport("15","工序定义"),
                new ScoreReport("16","工艺路线"),
                new ScoreReport("17","质检标准"),
                new ScoreReport("18","缺陷定义"),
                new ScoreReport("19","生产订单"),
                new ScoreReport("20","库存查询"),
                new ScoreReport("21","物料清单"),
            };
            return list;
        }
    }
    public class ScoreReport
    {
        public ScoreReport(string a, string n)
        {
            FileCode = a;
            FileName = n;
        }
        public string FileCode { get; set; }
        public string FileName { get; set; }
    }
}
VueWebApi/Tools/ExcelModelCheck.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,14 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace VueWebApi.Tools
{
    public class ExcelModelCheck
    {
        public ToMessage json1 { get; set; }
        public ToMessage json2 { get; set; }
        public ToMessage json3 { get; set; }
    }
}
VueWebApi/Tools/ImportExcel.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,910 @@
using NPOI.HSSF.UserModel;
using NPOI.SS.UserModel;
using NPOI.XSSF.UserModel;
using System;
using System.Collections.Generic;
using System.Data;
using System.IO;
using System.Linq;
using System.Web;
using VueWebApi.Models;
namespace VueWebApi.Tools
{
    public class ImportExcel
    {
        public static ToMessage mes = new ToMessage(); //定义全局返回信息对象
        /// <summary>
        /// Excel导入成Datable
        /// </summary>
        /// <param name="file">导入路径(包含文件名与扩展名)</param>
        /// <returns></returns>
        public static DataTable ExcelToTable(string file)
        {
            IWorkbook Workbook;
            DataTable table = new DataTable();
            try
            {
                using (FileStream fileStream = new FileStream(file, FileMode.Open, FileAccess.Read))
                {
                    //XSSFWorkbook é€‚用XLSX格式,HSSFWorkbook é€‚用XLS格式
                    string fileExt = Path.GetExtension(file).ToLower();
                    if (fileExt == ".xls")
                    {
                        Workbook = new HSSFWorkbook(fileStream);
                    }
                    else if (fileExt == ".xlsx")
                    {
                        Workbook = new XSSFWorkbook(fileStream);
                    }
                    else
                    {
                        Workbook = null;
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            //定位在第一个sheet
            ISheet sheet = Workbook.GetSheetAt(0);
            //第一行为标题行
            IRow headerRow = sheet.GetRow(0);
            int cellCount = headerRow.LastCellNum;
            int rowCount = sheet.LastRowNum;
            //循环添加标题列
            for (int i = headerRow.FirstCellNum; i < cellCount; i++)
            {
                DataColumn column = new DataColumn(headerRow.GetCell(i).StringCellValue);
                table.Columns.Add(column);
            }
            //数据
            for (int i = (sheet.FirstRowNum + 1); i <= rowCount; i++)
            {
                IRow row = sheet.GetRow(i);
                DataRow dataRow = table.NewRow();
                if (row != null)
                {
                    for (int j = row.FirstCellNum; j < cellCount; j++)
                    {
                        if (row.GetCell(j) != null)
                        {
                            dataRow[j] = GetCellValue(row.GetCell(j)).Trim();
                        }
                    }
                }
                table.Rows.Add(dataRow);
            }
            //清除最后的空行
            //清除最后的空行
            for (int i = 0; i < table.Rows.Count; i++)
            {
                bool isnull = true;
                for (int j = 0; j < table.Columns.Count; j++)
                {
                    if (table.Rows[i][j].ToString() != null && table.Rows[i][j].ToString() != "")
                    {
                        if (table.Rows[i][j].ToString().Trim() != "" && table.Rows[i][j].ToString().Trim() != null)
                        {
                            isnull = false;
                            break;
                        }
                    }
                }
                if (isnull)
                {
                    table.Rows[i].Delete();
                    i = 0;
                }
            }
            return table;
        }
        /// <summary>
        /// Excel 2个Sheet导入成Datable
        /// </summary>
        /// <param name="file">导入路径(包含文件名与扩展名)</param>
        /// <returns></returns>
        public static List<DataTable> ExcelToTableList(string file)
        {
            List<DataTable> list = new List<DataTable>();
            IWorkbook Workbook;
            try
            {
                using (FileStream fileStream = new FileStream(file, FileMode.Open, FileAccess.Read))
                {
                    //XSSFWorkbook é€‚用XLSX格式,HSSFWorkbook é€‚用XLS格式
                    string fileExt = Path.GetExtension(file).ToLower();
                    if (fileExt == ".xls")
                    {
                        Workbook = new HSSFWorkbook(fileStream);
                    }
                    else if (fileExt == ".xlsx")
                    {
                        Workbook = new XSSFWorkbook(fileStream);
                    }
                    else
                    {
                        Workbook = null;
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            int count = Workbook.NumberOfSheets; //获取所有SheetName
            if (count < 2)
            {
                DataTable table = new DataTable();
                //定位在第一个sheet
                ISheet sheet = Workbook.GetSheetAt(0);
                //第一行为标题行
                IRow headerRow = sheet.GetRow(0);
                int cellCount = headerRow.LastCellNum;
                int rowCount = sheet.LastRowNum;
                //循环添加标题列
                for (int i = headerRow.FirstCellNum; i < cellCount; i++)
                {
                    DataColumn column = new DataColumn(headerRow.GetCell(i).StringCellValue);
                    table.Columns.Add(column);
                }
                //数据
                for (int i = (sheet.FirstRowNum + 1); i <= rowCount; i++)
                {
                    IRow row = sheet.GetRow(i);
                    DataRow dataRow = table.NewRow();
                    if (row != null)
                    {
                        for (int j = row.FirstCellNum; j < cellCount; j++)
                        {
                            if (row.GetCell(j) != null)
                            {
                                dataRow[j] = GetCellValue(row.GetCell(j)).Trim();
                            }
                        }
                    }
                    table.Rows.Add(dataRow);
                }
                //清除最后的空行
                for (int i = 0; i < table.Rows.Count; i++)
                {
                    bool isnull = true;
                    for (int j = 0; j < table.Columns.Count; j++)
                    {
                        if (table.Rows[i][j].ToString() != null && table.Rows[i][j].ToString() != "")
                        {
                            if (table.Rows[i][j].ToString().Trim() != "" && table.Rows[i][j].ToString().Trim() != null)
                            {
                                isnull = false;
                                break;
                            }
                        }
                    }
                    if (isnull)
                    {
                        table.Rows[i].Delete();
                        i = 0;
                    }
                }
                list.Add(table);
            }
            else
            {
                for (int m = 0; m < 2; m++)
                {
                    DataTable table = new DataTable();
                    //定位在第一个sheet
                    ISheet sheet = Workbook.GetSheetAt(m);
                    //第一行为标题行
                    IRow headerRow = sheet.GetRow(0);
                    int cellCount = headerRow.LastCellNum;
                    int rowCount = sheet.LastRowNum;
                    //循环添加标题列
                    for (int i = headerRow.FirstCellNum; i < cellCount; i++)
                    {
                        DataColumn column = new DataColumn(headerRow.GetCell(i).StringCellValue);
                        table.Columns.Add(column);
                    }
                    //数据
                    for (int i = (sheet.FirstRowNum + 1); i <= rowCount; i++)
                    {
                        IRow row = sheet.GetRow(i);
                        DataRow dataRow = table.NewRow();
                        if (row != null)
                        {
                            for (int j = row.FirstCellNum; j < cellCount; j++)
                            {
                                if (row.GetCell(j) != null)
                                {
                                    dataRow[j] = GetCellValue(row.GetCell(j)).Trim();
                                }
                            }
                        }
                        table.Rows.Add(dataRow);
                    }
                    //清除最后的空行
                    for (int i = 0; i < table.Rows.Count; i++)
                    {
                        bool isnull = true;
                        for (int j = 0; j < table.Columns.Count; j++)
                        {
                            if (table.Rows[i][j].ToString() != null && table.Rows[i][j].ToString() != "")
                            {
                                if (table.Rows[i][j].ToString().Trim() != "" && table.Rows[i][j].ToString().Trim() != null)
                                {
                                    isnull = false;
                                    break;
                                }
                            }
                        }
                        if (isnull)
                        {
                            table.Rows[i].Delete();
                            i = 0;
                        }
                    }
                    list.Add(table);
                }
            }
            return list;
        }
        /// <summary>
        /// èŽ·å–å•å…ƒæ ¼ç±»åž‹
        /// </summary>
        /// <param name="cell"></param>
        /// <returns></returns>
        private static string GetCellValue(ICell cell)
        {
            if (cell == null)
            {
                return string.Empty;
            }
            switch (cell.CellType)
            {
                case CellType.Blank:
                    return string.Empty;
                case CellType.Boolean:
                    return cell.BooleanCellValue.ToString();
                case CellType.Error:
                    return cell.ErrorCellValue.ToString();
                case CellType.Numeric:
                    //Cell为非NUMERIC时,调用IsCellDateFormatted方法会报错,所以先要进行类型判断
                    if (cell.CellType == CellType.Numeric && DateUtil.IsCellDateFormatted(cell))
                        return Convert.ToDateTime(cell.DateCellValue).ToString("yyyy-MM-dd");
                    else
                    {
                        return cell.NumericCellValue.ToString();
                    }
                //if (format != 0) { return Convert.ToDateTime(cell.DateCellValue).ToString("yyyy-MM-dd"); } else { return cell.NumericCellValue.ToString(); }
                case CellType.Unknown:
                default:
                    return cell.ToString();
                case CellType.String:
                    return cell.StringCellValue;
                case CellType.Formula:
                    try
                    {
                        HSSFFormulaEvaluator e = new HSSFFormulaEvaluator(cell.Sheet.Workbook);
                        e.EvaluateInCell(cell);
                        return cell.ToString();
                    }
                    catch
                    {
                        return cell.NumericCellValue.ToString();
                    }
            }
        }
        /// <summary>
        /// å•个Excel ä¸ä¸ºç©ºéªŒè¯ã€é‡å¤æ•°æ®éªŒè¯
        /// </summary>
        /// <param name="file">导入路径(包含文件名与扩展名)</param>
        /// <returns></returns>
        public static List<ExcelErro> ExcelToTableErro(string file)
        {
            List<ExcelErro> list = new List<ExcelErro>();
            IWorkbook Workbook;
            DataTable table = new DataTable();
            bool iscell = false;
            int iscellCount = 0;
            try
            {
                using (FileStream fileStream = new FileStream(file, FileMode.Open, FileAccess.Read))
                {
                    //XSSFWorkbook é€‚用XLSX格式,HSSFWorkbook é€‚用XLS格式
                    string fileExt = Path.GetExtension(file).ToLower();
                    if (fileExt == ".xls")
                    {
                        Workbook = new HSSFWorkbook(fileStream);
                    }
                    else if (fileExt == ".xlsx")
                    {
                        Workbook = new XSSFWorkbook(fileStream);
                    }
                    else
                    {
                        Workbook = null;
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            //定位在第一个sheet
            ISheet sheet = Workbook.GetSheetAt(0);
            //sheet.ShiftRows(sheet.FirstRowNum-1, sheet.LastRowNum,1);
            //第一行为标题行
            IRow headerRow = sheet.GetRow(0);
            int cellCount = headerRow.LastCellNum;
            int rowCount0 = sheet.FirstRowNum;
            //int rowCount = sheet.LastRowNum;
            //int rowCount = sheet.PhysicalNumberOfRows;
            int rowCount = Rownum(headerRow, cellCount, sheet, sheet.LastRowNum); //获取删除空行之后的数据行 (只针对于最后数据项有空行的)
            if (rowCount - rowCount0 >= 1)
            {
                //-------------判断必填项是否为空----------------//
                //循环数据行
                for (int i = (sheet.FirstRowNum + 1); i <= rowCount; i++)
                {
                    iscell = false;
                    iscellCount = 0;
                    IRow row = sheet.GetRow(i);
                    //判断是否有空行
                    if (row == null)
                    {
                        ExcelErro erro = new ExcelErro();
                        erro.RoeNumber = (i + 1).ToString();
                        erro.ErrorField = "空行";
                        erro.ErrorCont = "空行";
                        list.Add(erro);
                        continue;
                    }
                    //判断是否存在空数据行
                    for (int c = 0; c < cellCount; c++)
                    {
                        if (GetCellValue(row.GetCell(c)).Trim() != null && GetCellValue(row.GetCell(c)).Trim() != "")
                        {
                            iscell = false;
                        }
                        else
                        {
                            iscell = true;
                            iscellCount++;
                        }
                    }
                    if (iscell == true && iscellCount == cellCount)  //空行
                    {
                        continue;
                    }
                    else
                    {
                        //循环标题列
                        for (int j = headerRow.FirstCellNum; j < cellCount; j++)
                        {
                            //获取单元格的填充色
                            string rgb = headerRow.Cells[j].CellStyle.FillForegroundColor.ToString();
                            if (rgb == "51")  //必填项字段列头填充色
                            {
                                if (sheet.GetRow(i) == null || sheet.GetRow(i).ToString() == "")  //存在空行
                                {
                                    ExcelErro erro = new ExcelErro();
                                    erro.RoeNumber = i.ToString();
                                    erro.ErrorField = "{第" + i.ToString() + "行}";
                                    erro.ErrorCont = "{第" + i.ToString() + "}行为空";
                                    list.Add(erro);
                                    break;
                                }
                                else
                                {
                                    string cellValue = GetCellValue(sheet.GetRow(i).GetCell(j)).Trim();   //GetCell:返回包括空列值  Cells:只返回有值的列
                                    if (cellValue == "" || cellValue == null)
                                    {
                                        ExcelErro erro = new ExcelErro();
                                        erro.RoeNumber = (sheet.GetRow(i).RowNum + 1).ToString();
                                        erro.ErrorField = "{" + headerRow.Cells[j].StringCellValue + "}";
                                        erro.ErrorCont = "{" + headerRow.Cells[j].StringCellValue + "}字段不能为空";
                                        list.Add(erro);
                                    }
                                }
                            }
                        }
                    }
                }
                //-------------判断唯一项是否重复----------------//
                //循环添加标题列
                for (int i = headerRow.FirstCellNum; i < cellCount; i++)
                {
                    DataColumn column = new DataColumn(headerRow.GetCell(i).StringCellValue);
                    table.Columns.Add(column);
                }
                //数据
                for (int i = (sheet.FirstRowNum + 1); i <= rowCount; i++)
                {
                    IRow row = sheet.GetRow(i);
                    DataRow dataRow = table.NewRow();
                    if (row != null)
                    {
                        for (int j = row.FirstCellNum; j < cellCount; j++)
                        {
                            if (row.GetCell(j) != null)
                            {
                                dataRow[j] = GetCellValue(row.GetCell(j)).Trim();
                            }
                        }
                    }
                    table.Rows.Add(dataRow);
                }
                //清除最后的空行
                for (int i = 0; i < table.Rows.Count; i++)
                {
                    bool isnull = true;
                    for (int j = 0; j < table.Columns.Count; j++)
                    {
                        if (table.Rows[i][j].ToString() != null && table.Rows[i][j].ToString() != "")
                        {
                            if (table.Rows[i][j].ToString().Trim() != "" && table.Rows[i][j].ToString().Trim() != null)
                            {
                                isnull = false;
                                break;
                            }
                        }
                    }
                    if (isnull)
                    {
                        table.Rows[i].Delete();
                        i = 0;
                    }
                }
                DataView view = new DataView(table);
                //获取所有唯一列
                List<string> list0 = new List<string>();
                //循环标题列
                for (int j = headerRow.FirstCellNum; j < cellCount; j++)
                {
                    bool isContain = headerRow.Cells[j].StringCellValue.Contains("唯一");  //标题列中的必填列
                    if (isContain == true)
                    {
                        //
                        if (view.ToTable(true, new string[] { "" + headerRow.Cells[j].StringCellValue.Trim() + "" }).Rows.Count < table.Rows.Count)
                        {
                            ExcelErro erro = new ExcelErro();
                            erro.RoeNumber = "/";
                            erro.ErrorField = "{" + headerRow.Cells[j].StringCellValue + "}";
                            erro.ErrorCont = "{" + headerRow.Cells[j].StringCellValue + "}字段有重复数据";
                            list.Add(erro);
                        }
                    }
                }
            }
            List<ExcelErro> stuList = list.OrderBy(s => s.RoeNumber).ToList<ExcelErro>();
            return list;
        }
        /// <summary>
        /// Excel 2个Sheet æ•°æ®éªŒè¯
        /// </summary>
        /// <param name="file">导入路径(包含文件名与扩展名)</param>
        /// <returns></returns>
        public static List<ExcelErro> ExcelToTableListErro(string file)
        {
            List<ExcelErro> list = new List<ExcelErro>();
            IWorkbook Workbook;
            bool iscell = false;
            int iscellCount = 0;
            try
            {
                using (FileStream fileStream = new FileStream(file, FileMode.Open, FileAccess.Read))
                {
                    //XSSFWorkbook é€‚用XLSX格式,HSSFWorkbook é€‚用XLS格式
                    string fileExt = Path.GetExtension(file).ToLower();
                    if (fileExt == ".xls")
                    {
                        Workbook = new HSSFWorkbook(fileStream);
                    }
                    else if (fileExt == ".xlsx")
                    {
                        Workbook = new XSSFWorkbook(fileStream);
                    }
                    else
                    {
                        Workbook = null;
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            for (int mm = 0; mm < 2; mm++)
            {
                DataTable table = new DataTable();
                //定位在第一个sheet
                ISheet sheet = Workbook.GetSheetAt(mm);
                //sheet.ShiftRows(sheet.FirstRowNum-1, sheet.LastRowNum,1);
                //第一行为标题行
                IRow headerRow = sheet.GetRow(0);
                int cellCount = headerRow.LastCellNum;
                int rowCount0 = sheet.FirstRowNum;
                //int rowCount = sheet.LastRowNum;
                int rowCount = Rownum(headerRow, cellCount, sheet, sheet.LastRowNum); //获取删除空行之后的数据行 (只针对于最后数据项有空行的)
                if (rowCount - rowCount0 >= 1)
                {
                    //-------------判断必填项是否为空----------------//
                    //循环数据行
                    for (int i = (sheet.FirstRowNum + 1); i <= rowCount; i++)
                    {
                        iscell = false;
                        iscellCount = 0;
                        IRow row = sheet.GetRow(i);
                        //判断是否有空行
                        if (row == null)
                        {
                            ExcelErro erro = new ExcelErro();
                            erro.RoeNumber = (i + 1).ToString();
                            erro.ErrorField = "空行";
                            erro.ErrorCont = "空行";
                            list.Add(erro);
                            continue;
                        }
                        //判断是否存在空数据行
                        for (int c = 0; c < cellCount; c++)
                        {
                            if (GetCellValue(row.GetCell(c)).Trim() != null && GetCellValue(row.GetCell(c)).Trim() != "")
                            {
                                iscell = false;
                            }
                            else
                            {
                                iscell = true;
                                iscellCount++;
                            }
                        }
                        if (iscell == true && iscellCount == cellCount)  //空行
                        {
                            continue;
                        }
                        else
                        {
                            //循环标题列
                            for (int j = headerRow.FirstCellNum; j < cellCount; j++)
                            {
                                //获取单元格的填充色
                                string rgb = headerRow.Cells[j].CellStyle.FillForegroundColor.ToString();
                                if (rgb == "51")  //必填项字段列头填充色
                                {
                                    if (sheet.GetRow(i) == null || sheet.GetRow(i).ToString() == "")  //存在空行
                                    {
                                        ExcelErro erro = new ExcelErro();
                                        erro.RoeNumber = i.ToString();
                                        erro.ErrorField = "{第" + i.ToString() + "行}";
                                        erro.ErrorCont = "{第" + i.ToString() + "}行为空";
                                        list.Add(erro);
                                        break;
                                    }
                                    else
                                    {
                                        string cellValue = GetCellValue(sheet.GetRow(i).GetCell(j)).Trim();   //GetCell:返回包括空列值  Cells:只返回有值的列
                                        if (cellValue == "" || cellValue == null)
                                        {
                                            ExcelErro erro = new ExcelErro();
                                            erro.RoeNumber = (sheet.GetRow(i).RowNum + 1).ToString();
                                            erro.ErrorField = "{" + headerRow.Cells[j].StringCellValue + "}";
                                            erro.ErrorCont = mm == 0 ? "主表中:" + "{" + headerRow.Cells[j].StringCellValue + "}字段不能为空" : "子表中:" + "{" + headerRow.Cells[j].StringCellValue + "}字段不能为空";
                                            list.Add(erro);
                                        }
                                    }
                                }
                            }
                        }
                    }
                    //-------------判断唯一项是否重复----------------//
                    //循环添加标题列
                    for (int i = headerRow.FirstCellNum; i < cellCount; i++)
                    {
                        DataColumn column = new DataColumn(headerRow.GetCell(i).StringCellValue);
                        table.Columns.Add(column);
                    }
                    //数据
                    for (int i = (sheet.FirstRowNum + 1); i <= rowCount; i++)
                    {
                        IRow row = sheet.GetRow(i);
                        DataRow dataRow = table.NewRow();
                        if (row != null)
                        {
                            for (int j = row.FirstCellNum; j < cellCount; j++)
                            {
                                if (row.GetCell(j) != null)
                                {
                                    dataRow[j] = GetCellValue(row.GetCell(j)).Trim();
                                }
                            }
                        }
                        table.Rows.Add(dataRow);
                    }
                    //清除最后的空行
                    for (int i = 0; i < table.Rows.Count; i++)
                    {
                        bool isnull = true;
                        for (int j = 0; j < table.Columns.Count; j++)
                        {
                            if (table.Rows[i][j].ToString() != null && table.Rows[i][j].ToString() != "")
                            {
                                if (table.Rows[i][j].ToString().Trim() != "" && table.Rows[i][j].ToString().Trim() != null)
                                {
                                    isnull = false;
                                    break;
                                }
                            }
                        }
                        if (isnull)
                        {
                            table.Rows[i].Delete();
                            i = 0;
                        }
                    }
                    DataView view = new DataView(table);
                    //获取所有唯一列
                    List<string> list0 = new List<string>();
                    //循环标题列
                    for (int j = headerRow.FirstCellNum; j < cellCount; j++)
                    {
                        bool isContain = headerRow.Cells[j].StringCellValue.Contains("唯一");  //标题列中的必填列
                        if (isContain == true)
                        {
                            //
                            if (view.ToTable(true, new string[] { "" + headerRow.Cells[j].StringCellValue + "" }).Rows.Count < table.Rows.Count)
                            {
                                ExcelErro erro = new ExcelErro();
                                erro.RoeNumber = "/";
                                erro.ErrorField = "{" + headerRow.Cells[j].StringCellValue + "}";
                                erro.ErrorCont = mm == 0 ? "主表中:" + "{" + headerRow.Cells[j].StringCellValue + "}字段有重复数据" : "子表中:" + "{" + headerRow.Cells[j].StringCellValue + "}字段有重复数据";
                                list.Add(erro);
                            }
                        }
                    }
                }
            }
            List<ExcelErro> stuList = list.OrderBy(s => s.RoeNumber).ToList<ExcelErro>();
            return list;
        }
        #region【数据量验证】
        public static ToMessage ExcelCheckCountSum(string file)
        {
            IWorkbook Workbook;
            try
            {
                using (FileStream fileStream = new FileStream(file, FileMode.Open, FileAccess.Read))
                {
                    //XSSFWorkbook é€‚用XLSX格式,HSSFWorkbook é€‚用XLS格式
                    string fileExt = Path.GetExtension(file).ToLower();
                    if (fileExt == ".xls")
                    {
                        Workbook = new HSSFWorkbook(fileStream);
                    }
                    else if (fileExt == ".xlsx")
                    {
                        Workbook = new XSSFWorkbook(fileStream);
                    }
                    else
                    {
                        Workbook = null;
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            int count = Workbook.NumberOfSheets; //获取所有SheetName
            if (count < 2)
            {
                DataTable table = new DataTable();
                //定位在第一个sheet
                ISheet sheet = Workbook.GetSheetAt(0);
                //第一行为标题行
                IRow headerRow = sheet.GetRow(0);
                int cellCount = headerRow.LastCellNum;
                int rowCount = sheet.LastRowNum;
                //循环添加标题列
                for (int i = headerRow.FirstCellNum; i < cellCount; i++)
                {
                    DataColumn column = new DataColumn(headerRow.GetCell(i).StringCellValue);
                    table.Columns.Add(column);
                }
                //数据
                for (int i = (sheet.FirstRowNum + 1); i <= rowCount; i++)
                {
                    IRow row = sheet.GetRow(i);
                    DataRow dataRow = table.NewRow();
                    if (row != null)
                    {
                        for (int j = row.FirstCellNum; j < cellCount; j++)
                        {
                            if (row.GetCell(j) != null)
                            {
                                dataRow[j] = GetCellValue(row.GetCell(j)).Trim();
                            }
                        }
                    }
                    table.Rows.Add(dataRow);
                }
                //清除最后的空行
                for (int i = 0; i < table.Rows.Count; i++)
                {
                    bool isnull = true;
                    for (int j = 0; j < table.Columns.Count; j++)
                    {
                        if (table.Rows[i][j] != null)
                        {
                            if (table.Rows[i][j].ToString().Trim() != "" && table.Rows[i][j].ToString().Trim() != null)
                            {
                                isnull = false;
                                break;
                            }
                        }
                    }
                    if (isnull)
                    {
                        table.Rows[i].Delete();
                    }
                }
                if (table.Rows.Count <= 0)
                {
                    mes.code = "300";
                    mes.Message = "文件数据不能为空!";
                }
            }
            else
            {
                for (int m = 0; m < 2; m++)
                {
                    DataTable table = new DataTable();
                    //定位在第一个sheet
                    ISheet sheet = Workbook.GetSheetAt(m);
                    //第一行为标题行
                    IRow headerRow = sheet.GetRow(0);
                    int cellCount = headerRow.LastCellNum;
                    int rowCount = sheet.LastRowNum;
                    //循环添加标题列
                    for (int i = headerRow.FirstCellNum; i < cellCount; i++)
                    {
                        DataColumn column = new DataColumn(headerRow.GetCell(i).StringCellValue);
                        table.Columns.Add(column);
                    }
                    //数据
                    for (int i = (sheet.FirstRowNum + 1); i <= rowCount; i++)
                    {
                        IRow row = sheet.GetRow(i);
                        DataRow dataRow = table.NewRow();
                        if (row != null)
                        {
                            for (int j = row.FirstCellNum; j < cellCount; j++)
                            {
                                if (row.GetCell(j) != null)
                                {
                                    dataRow[j] = GetCellValue(row.GetCell(j)).Trim();
                                }
                            }
                        }
                        table.Rows.Add(dataRow);
                    }
                    //清除最后的空行
                    for (int i = 0; i < table.Rows.Count; i++)
                    {
                        bool isnull = true;
                        for (int j = 0; j < table.Columns.Count; j++)
                        {
                            if (table.Rows[i][j] != null)
                            {
                                if (table.Rows[i][j].ToString().Trim() != "" && table.Rows[i][j].ToString().Trim() != null)
                                {
                                    isnull = false;
                                    break;
                                }
                            }
                        }
                        if (isnull)
                        {
                            table.Rows[i].Delete();
                        }
                    }
                    if (table.Rows.Count <= 0)
                    {
                        mes.code = "300";
                        mes.Message = "主子表文件中数据不能为空!";
                    }
                }
            }
            return mes;
        }
        #endregion
        #region【去除空行后获取行数】
        public static int Rownum(IRow headerRow, int cellCount, ISheet sheet, int rowCount)
        {
            DataTable table = new DataTable();
            //循环添加标题列
            for (int i = headerRow.FirstCellNum; i < cellCount; i++)
            {
                DataColumn column = new DataColumn(headerRow.GetCell(i).StringCellValue);
                table.Columns.Add(column);
            }
            //数据
            for (int i = (sheet.FirstRowNum + 1); i <= rowCount; i++)
            {
                IRow row = sheet.GetRow(i);
                DataRow dataRow = table.NewRow();
                if (row != null)
                {
                    for (int j = row.FirstCellNum; j < cellCount; j++)
                    {
                        if (row.GetCell(j) != null)
                        {
                            dataRow[j] = GetCellValue(row.GetCell(j)).Trim();
                        }
                    }
                }
                table.Rows.Add(dataRow);
            }
            //清除最后的空行
            for (int i = 0; i < table.Rows.Count; i++)
            {
                bool isnull = true;
                for (int j = 0; j < table.Columns.Count; j++)
                {
                    if (table.Rows[i][j].ToString() != null && table.Rows[i][j].ToString() != "")
                    {
                        if (table.Rows[i][j].ToString().Trim() != "" && table.Rows[i][j].ToString().Trim() != null)
                        {
                            isnull = false;
                            break;
                        }
                    }
                }
                if (isnull)
                {
                    table.Rows[i].Delete();
                    i = 0;
                }
            }
            return table.Rows.Count;
        }
        #endregion
    }
}
VueWebApi/Tools/ImportExcelData.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,2368 @@
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web;
using VueWebApi.Models;
namespace VueWebApi.Tools
{
    public class ImportExcelData
    {
        public static ToMessage mes = new ToMessage(); //定义全局返回信息对象
        #region【Excel模板上传验证】
        #region【Excel模板上传验证,角色权限模板】
        public static string One(string FileCode, out string code)
        {
            string Message = "";
            code = "";
            DataTable excelTable = new DataTable();
            excelTable = ImportExcel.ExcelToTable(FileCode);
            if (excelTable.Columns.Count != 4)
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable.Columns[0].ColumnName != "序号")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable.Columns[1].ColumnName != "角色编号(唯一)")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable.Columns[2].ColumnName != "角色名称(唯一)")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable.Columns[3].ColumnName != "角色类型")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else
            {
                code = "200";
                Message = "模板检验通过";
            }
            return Message;
        }
        #endregion
        #region【Excel模板上传验证,用户角色模板】
        public static string Two(string FileCode, out string code)
        {
            string Message = "";
            code = "";
            DataTable excelTable = new DataTable();
            excelTable = ImportExcel.ExcelToTable(FileCode);
            if (excelTable.Columns.Count != 6)
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable.Columns[0].ColumnName != "序号")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable.Columns[1].ColumnName != "用户编号(唯一)")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable.Columns[2].ColumnName != "用户姓名")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable.Columns[3].ColumnName != "所属组织")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable.Columns[4].ColumnName != "在职状态")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable.Columns[5].ColumnName != "工资类型")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else
            {
                code = "200";
                Message = "模板检验通过";
            }
            return Message;
        }
        #endregion
        #region【Excel模板上传验证,工位清单模板】
        public static string Three(string FileCode, out string code)
        {
            string Message = "";
            code = "";
            DataTable excelTable = new DataTable();
            excelTable = ImportExcel.ExcelToTable(FileCode);
            if (excelTable.Columns.Count != 9)
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable.Columns[0].ColumnName != "序号")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable.Columns[1].ColumnName != "工位编号(唯一)")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable.Columns[2].ColumnName != "工位名称(唯一)")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable.Columns[3].ColumnName != "工位类型")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable.Columns[4].ColumnName != "所属车间")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable.Columns[5].ColumnName != "所属产线")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable.Columns[6].ColumnName != "使用状态")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable.Columns[7].ColumnName != "数采标识1")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable.Columns[8].ColumnName != "数采标识2")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else
            {
                code = "200";
                Message = "模板检验通过";
            }
            return Message;
        }
        #endregion
        #region【Excel模板上传验证,供方清单模板】
        public static string Four(string FileCode, out string code)
        {
            string Message = "";
            code = "";
            DataTable excelTable = new DataTable();
            excelTable = ImportExcel.ExcelToTable(FileCode);
            if (excelTable.Columns.Count != 5)
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable.Columns[0].ColumnName != "序号")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable.Columns[1].ColumnName != "供方编号(唯一)")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable.Columns[2].ColumnName != "供方名称(唯一)")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable.Columns[3].ColumnName != "补充描述")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable.Columns[4].ColumnName.Trim() != "供方类型(外协供方,外购供方)")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else
            {
                code = "200";
                Message = "模板检验通过";
            }
            return Message;
        }
        #endregion
        #region【Excel模板上传验证,客户清单模板】
        public static string Five(string FileCode, out string code)
        {
            string Message = "";
            code = "";
            DataTable excelTable = new DataTable();
            excelTable = ImportExcel.ExcelToTable(FileCode);
            if (excelTable.Columns.Count != 4)
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable.Columns[0].ColumnName != "序号")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable.Columns[1].ColumnName != "客户编号(唯一)")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable.Columns[2].ColumnName != "客户名称(唯一)")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable.Columns[3].ColumnName != "补充描述")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else
            {
                code = "200";
                Message = "模板检验通过";
            }
            return Message;
        }
        #endregion
        #region【Excel模板上传验证,仓库定义模板】
        public static string SixOne(string FileCode, out string code)
        {
            string Message = "";
            code = "";
            DataTable excelTable = new DataTable();
            excelTable = ImportExcel.ExcelToTable(FileCode);
            if (excelTable.Columns.Count != 4)
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable.Columns[0].ColumnName != "序号")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable.Columns[1].ColumnName != "仓库编码(唯一)")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable.Columns[2].ColumnName != "仓库名称(唯一)")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable.Columns[3].ColumnName != "功能描述")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else
            {
                code = "200";
                Message = "模板检验通过";
            }
            return Message;
        }
        #endregion
        #region【Excel模板上传验证,库区定义模板】
        public static string SixTwo(string FileCode, out string code)
        {
            string Message = "";
            code = "";
            DataTable excelTable = new DataTable();
            excelTable = ImportExcel.ExcelToTable(FileCode);
            if (excelTable.Columns.Count != 6)
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable.Columns[0].ColumnName != "序号")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable.Columns[1].ColumnName != "库区编码(唯一)")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable.Columns[2].ColumnName != "库区名称(唯一)")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable.Columns[3].ColumnName != "功能描述")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable.Columns[4].ColumnName != "仓库编码")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable.Columns[5].ColumnName != "仓库名称")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else
            {
                code = "200";
                Message = "模板检验通过";
            }
            return Message;
        }
        #endregion
        #region【Excel模板上传验证,库位定义模板】
        public static string SixThree(string FileCode, out string code)
        {
            string Message = "";
            code = "";
            DataTable excelTable = new DataTable();
            excelTable = ImportExcel.ExcelToTable(FileCode);
            if (excelTable.Columns.Count != 6)
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable.Columns[0].ColumnName != "序号")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable.Columns[1].ColumnName != "库位编码(唯一)")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable.Columns[2].ColumnName != "库位名称(唯一)")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable.Columns[3].ColumnName != "功能描述")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable.Columns[4].ColumnName != "库区编码")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable.Columns[5].ColumnName != "库区名称")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else
            {
                code = "200";
                Message = "模板检验通过";
            }
            return Message;
        }
        #endregion
        #region【Excel模板上传验证,容器定义模板】
        public static string Seven(string FileCode, out string code)
        {
            string Message = "";
            code = "";
            DataTable excelTable = new DataTable();
            excelTable = ImportExcel.ExcelToTable(FileCode);
            if (excelTable.Columns.Count != 5)
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable.Columns[0].ColumnName != "序号")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable.Columns[1].ColumnName != "容器编码(唯一)")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable.Columns[2].ColumnName != "容器名称(唯一)")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable.Columns[3].ColumnName != "容器自重(KG)")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable.Columns[4].ColumnName != "容器类型")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else
            {
                code = "200";
                Message = "模板检验通过";
            }
            return Message;
        }
        #endregion
        #region【Excel模板上传验证,存货档案模板】
        public static string Eight(string FileCode, out string code)
        {
            string Message = "";
            code = "";
            DataTable excelTable = new DataTable();
            excelTable = ImportExcel.ExcelToTable(FileCode);
            if (excelTable.Columns.Count != 11)
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable.Columns[0].ColumnName != "序号")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable.Columns[1].ColumnName != "物料编码(唯一)")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable.Columns[2].ColumnName != "物料名称")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable.Columns[3].ColumnName != "物料规格")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable.Columns[4].ColumnName != "主单位")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable.Columns[5].ColumnName != "辅单位")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable.Columns[6].ColumnName != "辅/主")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable.Columns[7].ColumnName != "物料类别")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable.Columns[8].ColumnName != "仓库名称")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable.Columns[9].ColumnName != "库存下限")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable.Columns[10].ColumnName != "库存上限")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else
            {
                code = "200";
                Message = "模板检验通过";
            }
            return Message;
        }
        #endregion
        #region【Excel模板上传验证,设备清单模板】
        public static string Nine(string FileCode, out string code)
        {
            string Message = "";
            code = "";
            DataTable excelTable = new DataTable();
            excelTable = ImportExcel.ExcelToTable(FileCode);
            if (excelTable.Columns.Count != 10)
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable.Columns[0].ColumnName != "序号")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable.Columns[1].ColumnName != "设备编号(唯一)")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable.Columns[2].ColumnName != "设备名称")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable.Columns[3].ColumnName != "设备类型")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable.Columns[4].ColumnName != "生产车间")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable.Columns[5].ColumnName != "所属产线")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable.Columns[6].ColumnName != "投入日期")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable.Columns[7].ColumnName != "稼动率(%)")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable.Columns[8].ColumnName != "使用状态")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable.Columns[9].ColumnName != "数采标识1")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else
            {
                code = "200";
                Message = "模板检验通过";
            }
            return Message;
        }
        #endregion
        #region【Excel模板上传验证,设备点检模板】
        public static string Ten(string FileCode, out string code)
        {
            string Message = "";
            code = "";
            List<DataTable> excelTable = new List<DataTable>();
            excelTable = ImportExcel.ExcelToTableList(FileCode);
            if (excelTable.Count != 2)
            {
                code = "300";
                Message = "模板不符合规范,缺失的Sheet";
            }
            else if (excelTable[0].Columns.Count != 4)
            {
                code = "300";
                Message = "模板不符合规范,请检查列名字段数";
            }
            else if (excelTable[1].Columns.Count != 9)
            {
                code = "300";
                Message = "模板不符合规范,请检查列名字段数";
            }
            else if (excelTable[0].Columns[0].ColumnName != "序号")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable[0].Columns[1].ColumnName != "点检标准(唯一)")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable[0].Columns[2].ColumnName != "标准名称(唯一)")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable[0].Columns[3].ColumnName != "点检管控")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable[1].Columns[0].ColumnName != "序号")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable[1].Columns[1].ColumnName != "点检标准")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable[1].Columns[2].ColumnName != "标准名称")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable[1].Columns[3].ColumnName != "SEQ(部位顺序)")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable[1].Columns[4].ColumnName != "部位条码(唯一)")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable[1].Columns[5].ColumnName != "部位名称")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable[1].Columns[6].ColumnName != "点检要求")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable[1].Columns[7].ColumnName != "是否扫码")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable[1].Columns[8].ColumnName != "点检周期")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else
            {
                code = "200";
                Message = "模板检验通过";
            }
            return Message;
        }
        #endregion
        #region【Excel模板上传验证,设备保养模板】
        public static string Eleven(string FileCode, out string code)
        {
            string Message = "";
            code = "";
            List<DataTable> excelTable = new List<DataTable>();
            excelTable = ImportExcel.ExcelToTableList(FileCode);
            if (excelTable.Count != 2)
            {
                code = "300";
                Message = "模板不符合规范,缺失的Sheet";
            }
            else if (excelTable[0].Columns.Count != 3)
            {
                code = "300";
                Message = "模板不符合规范,请检查列名字段数";
            }
            else if (excelTable[1].Columns.Count != 9)
            {
                code = "300";
                Message = "模板不符合规范,请检查列名字段数";
            }
            else if (excelTable[0].Columns[0].ColumnName != "序号")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable[0].Columns[1].ColumnName != "保养标准(唯一)")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable[0].Columns[2].ColumnName != "标准名称(唯一)")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable[1].Columns[0].ColumnName != "序号")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable[1].Columns[1].ColumnName != "保养标准")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable[1].Columns[2].ColumnName != "标准名称")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable[1].Columns[3].ColumnName != "SEQ(部位顺序)")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable[1].Columns[4].ColumnName != "部位条码(唯一)")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable[1].Columns[5].ColumnName != "部位名称")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable[1].Columns[6].ColumnName != "保养要求")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable[1].Columns[7].ColumnName != "是否扫码")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable[1].Columns[8].ColumnName != "保养周期")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else
            {
                code = "200";
                Message = "模板检验通过";
            }
            return Message;
        }
        #endregion
        #region【Excel模板上传验证,工装清单模板】
        public static string Twelve(string FileCode, out string code)
        {
            string Message = "";
            code = "";
            DataTable excelTable = new DataTable();
            excelTable = ImportExcel.ExcelToTable(FileCode);
            if (excelTable.Columns.Count != 7)
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable.Columns[0].ColumnName != "序号")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable.Columns[1].ColumnName != "工装编号(唯一)")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable.Columns[2].ColumnName != "工装名称(唯一)")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable.Columns[3].ColumnName != "工装类型")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable.Columns[4].ColumnName != "型腔数量")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable.Columns[5].ColumnName != "理论寿命(次)")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable.Columns[6].ColumnName != "使用状态")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else
            {
                code = "200";
                Message = "模板检验通过";
            }
            return Message;
        }
        #endregion
        #region【Excel模板上传验证,工装点检模板】
        public static string Thirteen(string FileCode, out string code)
        {
            string Message = "";
            code = "";
            List<DataTable> excelTable = new List<DataTable>();
            excelTable = ImportExcel.ExcelToTableList(FileCode);
            if (excelTable.Count != 2)
            {
                code = "300";
                Message = "模板不符合规范,缺失的Sheet";
            }
            else if (excelTable[0].Columns.Count != 3)
            {
                code = "300";
                Message = "模板不符合规范,请检查列名字段数";
            }
            else if (excelTable[1].Columns.Count != 8)
            {
                code = "300";
                Message = "模板不符合规范,请检查列名字段数";
            }
            else if (excelTable[0].Columns[0].ColumnName != "序号")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable[0].Columns[1].ColumnName != "点检标准(唯一)")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable[0].Columns[2].ColumnName != "标准名称(唯一)")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable[1].Columns[0].ColumnName != "序号")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable[1].Columns[1].ColumnName != "点检标准")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable[1].Columns[2].ColumnName != "标准名称")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable[1].Columns[3].ColumnName != "SEQ(部位顺序)")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable[1].Columns[4].ColumnName != "部位条码(唯一)")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable[1].Columns[5].ColumnName != "部位名称")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable[1].Columns[6].ColumnName != "点检要求")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable[1].Columns[7].ColumnName != "点检周期")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else
            {
                code = "200";
                Message = "模板检验通过";
            }
            return Message;
        }
        #endregion
        #region【Excel模板上传验证,工装保养模板】
        public static string Fourteen(string FileCode, out string code)
        {
            string Message = "";
            code = "";
            List<DataTable> excelTable = new List<DataTable>();
            excelTable = ImportExcel.ExcelToTableList(FileCode);
            if (excelTable.Count != 2)
            {
                code = "300";
                Message = "模板不符合规范,缺失的Sheet";
            }
            else if (excelTable[0].Columns.Count != 3)
            {
                code = "300";
                Message = "模板不符合规范,请检查列名字段数";
            }
            else if (excelTable[1].Columns.Count != 8)
            {
                code = "300";
                Message = "模板不符合规范,请检查列名字段数";
            }
            else if (excelTable[0].Columns[0].ColumnName != "序号")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable[0].Columns[1].ColumnName != "保养标准(唯一)")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable[0].Columns[2].ColumnName != "标准名称(唯一)")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable[1].Columns[0].ColumnName != "序号")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable[1].Columns[1].ColumnName != "保养标准")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable[1].Columns[2].ColumnName != "标准名称")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable[1].Columns[3].ColumnName != "SEQ(部位顺序)")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable[1].Columns[4].ColumnName != "部位条码(唯一)")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable[1].Columns[5].ColumnName != "部位名称")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable[1].Columns[6].ColumnName != "保养要求")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable[1].Columns[7].ColumnName != "保养等级")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else
            {
                code = "200";
                Message = "模板检验通过";
            }
            return Message;
        }
        #endregion
        #region【Excel模板上传验证,工序定义模板】
        public static string Fifteen(string FileCode, out string code)
        {
            string Message = "";
            code = "";
            DataTable excelTable = new DataTable();
            excelTable = ImportExcel.ExcelToTable(FileCode);
            if (excelTable.Columns.Count != 4)
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable.Columns[0].ColumnName != "序号")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable.Columns[1].ColumnName != "工序编码(唯一)")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable.Columns[2].ColumnName != "工序名称(唯一)")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable.Columns[3].ColumnName != "启用状态")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else
            {
                code = "200";
                Message = "模板检验通过";
            }
            return Message;
        }
        #endregion
        #region【Excel模板上传验证,工艺路线模板】
        public static string Sixteen(string FileCode, out string code)
        {
            string Message = "";
            code = "";
            List<DataTable> excelTable = new List<DataTable>();
            excelTable = ImportExcel.ExcelToTableList(FileCode);
            if (excelTable.Count != 2)
            {
                code = "300";
                Message = "模板不符合规范,缺失的Sheet";
            }
            else if (excelTable[0].Columns.Count != 6)
            {
                code = "300";
                Message = "模板不符合规范,请检查列名字段数";
            }
            else if (excelTable[1].Columns.Count != 9)
            {
                code = "300";
                Message = "模板不符合规范,请检查列名字段数";
            }
            else if (excelTable[0].Columns[0].ColumnName != "序号")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable[0].Columns[1].ColumnName != "工艺路线(唯一)")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable[0].Columns[2].ColumnName != "物料编码")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable[0].Columns[3].ColumnName != "物料名称")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable[0].Columns[4].ColumnName != "生产周期(天)")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable[0].Columns[5].ColumnName != "结束装箱")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable[1].Columns[0].ColumnName != "序号")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable[1].Columns[1].ColumnName != "工艺路线")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable[1].Columns[2].ColumnName != "SEQ(排列顺序)")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable[1].Columns[3].ColumnName != "工序编码")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable[1].Columns[4].ColumnName != "工序名称")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable[1].Columns[5].ColumnName != "工序检验")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable[1].Columns[6].ColumnName != "初始节拍(秒)")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable[1].Columns[7].ColumnName != "初始型腔数")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable[1].Columns[8].ColumnName != "初始工价(元)")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else
            {
                code = "200";
                Message = "模板检验通过";
            }
            return Message;
        }
        #endregion
        #region【Excel模板上传验证,质检标准模板】
        public static string Seventeen(string FileCode, out string code)
        {
            string Message = "";
            code = "";
            List<DataTable> excelTable = new List<DataTable>();
            excelTable = ImportExcel.ExcelToTableList(FileCode);
            if (excelTable.Count != 2)
            {
                code = "300";
                Message = "模板不符合规范,缺失的Sheet";
            }
            else if (excelTable[0].Columns.Count != 8)
            {
                code = "300";
                Message = "模板不符合规范,请检查列名字段数";
            }
            else if (excelTable[1].Columns.Count != 9)
            {
                code = "300";
                Message = "模板不符合规范,请检查列名字段数";
            }
            else if (excelTable[0].Columns[0].ColumnName != "序号")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable[0].Columns[1].ColumnName != "物料编码")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable[0].Columns[2].ColumnName != "物料名称")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable[0].Columns[3].ColumnName != "检验类型")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable[0].Columns[4].ColumnName != "工艺路线")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable[0].Columns[5].ColumnName != "工序编码")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable[0].Columns[6].ColumnName != "工序名称")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable[0].Columns[7].ColumnName != "流程管控")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable[1].Columns[0].ColumnName != "序号")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable[1].Columns[1].ColumnName != "主表序列号")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable[1].Columns[2].ColumnName != "排列顺序")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable[1].Columns[3].ColumnName != "检验项目")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable[1].Columns[4].ColumnName != "重要度")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable[1].Columns[5].ColumnName != "检验工具")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable[1].Columns[6].ColumnName != "标准要求")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable[1].Columns[7].ColumnName != "下限值")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable[1].Columns[8].ColumnName != "上限值")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else
            {
                code = "200";
                Message = "模板检验通过";
            }
            return Message;
        }
        #endregion
        #region【Excel模板上传验证,缺陷定义模板】
        public static string Eighteen(string FileCode, out string code)
        {
            string Message = "";
            code = "";
            List<DataTable> excelTable = new List<DataTable>();
            excelTable = ImportExcel.ExcelToTableList(FileCode);
            if (excelTable.Count != 2)
            {
                code = "300";
                Message = "模板不符合规范,缺失的Sheet";
            }
            else if (excelTable[0].Columns.Count != 4)
            {
                code = "300";
                Message = "模板不符合规范,请检查列名字段数";
            }
            else if (excelTable[1].Columns.Count != 7)
            {
                code = "300";
                Message = "模板不符合规范,请检查列名字段数";
            }
            else if (excelTable[0].Columns[0].ColumnName != "序号")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable[0].Columns[1].ColumnName != "物料编码(唯一)")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable[0].Columns[2].ColumnName != "物料名称")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable[0].Columns[3].ColumnName != "启用状态")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable[1].Columns[0].ColumnName != "序号")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable[1].Columns[1].ColumnName != "物料信息序号")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable[1].Columns[2].ColumnName != "缺陷代码(唯一)")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable[1].Columns[3].ColumnName != "缺陷名称")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable[1].Columns[4].ColumnName != "主工艺路线")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable[1].Columns[5].ColumnName != "责任工序编码")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable[1].Columns[6].ColumnName != "责任工序名称")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else
            {
                code = "200";
                Message = "模板检验通过";
            }
            return Message;
        }
        #endregion
        #region【Excel模板上传验证,生产订单模板】
        public static string Nineteen(string FileCode, out string code)
        {
            string Message = "";
            code = "";
            DataTable excelTable = new DataTable();
            excelTable = ImportExcel.ExcelToTable(FileCode);
            if (excelTable.Columns.Count != 7)
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable.Columns[0].ColumnName != "序号")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable.Columns[1].ColumnName != "产品编码")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable.Columns[2].ColumnName != "产品名称")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable.Columns[3].ColumnName != "产品规格")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable.Columns[4].ColumnName != "订单数量")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable.Columns[5].ColumnName != "要求交付时间")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable.Columns[6].ColumnName != "ERP订单号")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else
            {
                code = "200";
                Message = "模板检验通过";
            }
            return Message;
        }
        #endregion
        #region【Excel模板上传验证,生产订单模板】
        public static string Twenty(string FileCode, out string code)
        {
            string Message = "";
            code = "";
            DataTable excelTable = new DataTable();
            excelTable = ImportExcel.ExcelToTable(FileCode);
            if (excelTable.Columns.Count != 10)
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable.Columns[0].ColumnName != "序号")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable.Columns[1].ColumnName != "库位编码")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable.Columns[2].ColumnName != "物料编码")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable.Columns[3].ColumnName != "物料名称")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable.Columns[4].ColumnName != "流程卡号")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable.Columns[5].ColumnName != "容器编码")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable.Columns[6].ColumnName != "入厂条码")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable.Columns[7].ColumnName != "炉号批次")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable.Columns[8].ColumnName != "供方名称")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable.Columns[9].ColumnName != "当前库存")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else
            {
                code = "200";
                Message = "模板检验通过";
            }
            return Message;
        }
        #endregion
        #region【Excel模板上传验证,物料清单模板】
        public static string TwentyOne(string FileCode, out string code)
        {
            string Message = "";
            code = "";
            List<DataTable> excelTable = new List<DataTable>();
            excelTable = ImportExcel.ExcelToTableList(FileCode);
            if (excelTable.Count != 2)
            {
                code = "300";
                Message = "模板不符合规范,缺失的Sheet";
            }
            else if (excelTable[0].Columns.Count != 6)
            {
                code = "300";
                Message = "模板不符合规范,请检查列名字段数";
            }
            else if (excelTable[1].Columns.Count != 8)
            {
                code = "300";
                Message = "模板不符合规范,请检查列名字段数";
            }
            else if (excelTable[0].Columns[0].ColumnName != "序号")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable[0].Columns[1].ColumnName != "母件编码")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable[0].Columns[2].ColumnName != "母件名称")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable[0].Columns[3].ColumnName != "基础数量")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable[0].Columns[4].ColumnName != "启用状态")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable[0].Columns[5].ColumnName != "版本号")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable[1].Columns[0].ColumnName != "序号")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable[1].Columns[1].ColumnName != "主表序列号")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable[1].Columns[2].ColumnName != "子件编码")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable[1].Columns[3].ColumnName != "子件名称")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable[1].Columns[4].ColumnName != "发料仓库")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable[1].Columns[5].ColumnName != "基本用量")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable[1].Columns[6].ColumnName != "损耗率(%)")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else if (excelTable[1].Columns[7].ColumnName != "属性")
            {
                code = "300";
                Message = "模板不符合规范,请检查列名";
            }
            else
            {
                code = "200";
                Message = "模板检验通过";
            }
            return Message;
        }
        #endregion
        #endregion
        #region【Excel上传数据验证】
        #region【Excel上传数据验证,角色权限】
        public static List<ExcelErro> OneData(string FileCode, out string StuCode, out string message, out int count)
        {
            message = "";
            StuCode = "";
            count = 0;
            string sql = "";
            DataTable dt;
            List<ExcelErro> list = new List<ExcelErro>();
            return list;
        }
        #endregion
        #region【Excel上传数据验证,用户角色】
        public static List<ExcelErro> TwoData(string FileCode, out string StuCode, out string message, out int count)
        {
            message = "";
            StuCode = "";
            count = 0;
            string sql = "";
            DataTable dt;
            List<ExcelErro> list = new List<ExcelErro>();
            return list;
        }
        #endregion
        #region【Excel上传数据验证,工位清单】
        public static List<ExcelErro> ThreeData(string FileCode, out string StuCode, out string message, out int count)
        {
            message = "";
            StuCode = "";
            count = 0;
            string sql = "";
            DataTable dt;
            List<ExcelErro> list = new List<ExcelErro>();
            return list;
        }
        #endregion
        #region【Excel上传数据验证,供方清单】
        public static List<ExcelErro> FourData(string FileCode, out string StuCode, out string message, out int count)
        {
            message = "";
            StuCode = "";
            count = 0;
            string sql = "";
            DataTable dt;
            List<ExcelErro> list = new List<ExcelErro>();
            return list;
        }
        #endregion
        #region【Excel上传数据验证,客户清单】
        public static List<ExcelErro> FiveData(string FileCode, out string StuCode, out string message, out int count)
        {
            message = "";
            StuCode = "";
            count = 0;
            string sql = "";
            DataTable dt;
            List<ExcelErro> list = new List<ExcelErro>();
            return list;
        }
        #endregion
        #region【Excel上传数据验证,仓库定义】
        public static List<ExcelErro> SixOneData(string FileCode, out string StuCode, out string message, out int count)
        {
            message = "";
            StuCode = "";
            count = 0;
            string sql = "";
            DataTable dt;
            List<ExcelErro> list = new List<ExcelErro>();
            return list;
        }
        #endregion
        #region【Excel上传数据验证,库区定义】
        public static List<ExcelErro> SixTwoData(string FileCode, out string StuCode, out string message, out int count)
        {
            message = "";
            StuCode = "";
            count = 0;
            string sql = "";
            DataTable dt;
            List<ExcelErro> list = new List<ExcelErro>();
            return list;
        }
        #endregion
        #region【Excel上传数据验证,库位定义】
        public static List<ExcelErro> SixThreeData(string FileCode, out string StuCode, out string message, out int count)
        {
            message = "";
            StuCode = "";
            count = 0;
            string sql = "";
            DataTable dt;
            List<ExcelErro> list = new List<ExcelErro>();
            return list;
        }
        #endregion
        #region【Excel上传数据验证,容器定义】
        public static List<ExcelErro> SevenData(string FileCode, out string StuCode, out string message, out int count)
        {
            message = "";
            StuCode = "";
            count = 0;
            string sql = "";
            DataTable dt;
            List<ExcelErro> list = new List<ExcelErro>();
            return list;
        }
        #endregion
        #region【Excel上传数据验证,存货档案】
        public static List<ExcelErro> EightData(string FileCode, out string StuCode, out string message, out int count)
        {
            message = "";
            StuCode = "";
            count = 0;
            string sql = "";
            DataTable dt;
            List<ExcelErro> list = new List<ExcelErro>();
            return list;
        }
        #endregion
        #region【Excel上传数据验证,设备清单】
        public static List<ExcelErro> NineData(string FileCode, out string StuCode, out string message, out int count)
        {
            message = "";
            StuCode = "";
            count = 0;
            string sql = "";
            DataTable dt;
            List<ExcelErro> list = new List<ExcelErro>();
            return list;
        }
        #endregion
        #region【Excel上传数据验证,设备点检】
        public static List<ExcelErro> TenData(string FileCode, out string StuCode, out string message, out int count)
        {
            message = "";
            StuCode = "";
            count = 0;
            string sql = "";
            DataTable dt;
            List<ExcelErro> list = new List<ExcelErro>();
            return list;
        }
        #endregion
        #region【Excel上传数据验证,设备保养】
        public static List<ExcelErro> ElevenData(string FileCode, out string StuCode, out string message, out int count)
        {
            message = "";
            StuCode = "";
            count = 0;
            string sql = "";
            DataTable dt;
            List<ExcelErro> list = new List<ExcelErro>();
            return list;
        }
        #endregion
        #region【Excel上传数据验证,工装清单】
        public static List<ExcelErro> TwelveData(string FileCode, out string StuCode, out string message, out int count)
        {
            message = "";
            StuCode = "";
            count = 0;
            string sql = "";
            DataTable dt;
            List<ExcelErro> list = new List<ExcelErro>();
            return list;
        }
        #endregion
        #region【Excel上传数据验证,工装点检】
        public static List<ExcelErro> ThirteenData(string FileCode, out string StuCode, out string message, out int count)
        {
            message = "";
            StuCode = "";
            count = 0;
            string sql = "";
            DataTable dt;
            List<ExcelErro> list = new List<ExcelErro>();
            return list;
        }
        #endregion
        #region【Excel上传数据验证,工装保养】
        public static List<ExcelErro> FourteenData(string FileCode, out string StuCode, out string message, out int count)
        {
            message = "";
            StuCode = "";
            count = 0;
            string sql = "";
            DataTable dt;
            List<ExcelErro> list = new List<ExcelErro>();
            return list;
        }
        #endregion
        #region【Excel上传数据验证,工序定义】
        public static List<ExcelErro> FifteenData(string FileCode, out string StuCode, out string message, out int count)
        {
            message = "";
            StuCode = "";
            count = 0;
            string sql = "";
            DataTable dt;
            List<ExcelErro> list = new List<ExcelErro>();
            return list;
        }
        #endregion
        #region【Excel上传数据验证,工艺路线】
        public static List<ExcelErro> SixteenData(string FileCode, out string StuCode, out string message, out int count)
        {
            message = "";
            StuCode = "";
            count = 0;
            string sql = "";
            DataTable dt;
            List<ExcelErro> list = new List<ExcelErro>();
            return list;
        }
        #endregion
        #region【Excel上传数据验证,质检标准】
        public static List<ExcelErro> SeventeenData(string FileCode, out string StuCode, out string message, out int count)
        {
            message = "";
            StuCode = "";
            count = 0;
            string sql = "";
            DataTable dt;
            List<ExcelErro> list = new List<ExcelErro>();
            return list;
        }
        #endregion
        #region【Excel上传数据验证,缺陷定义】
        public static List<ExcelErro> EighteenData(string FileCode, out string StuCode, out string message, out int count)
        {
            message = "";
            StuCode = "";
            count = 0;
            string sql = "";
            DataTable dt;
            List<ExcelErro> list = new List<ExcelErro>();
            return list;
        }
        #endregion
        #region【Excel上传数据验证,生产订单】
        public static List<ExcelErro> NineteenData(string FileCode, out string StuCode, out string message, out int count)
        {
            message = "";
            StuCode = "";
            count = 0;
            string sql = "";
            DataTable dt;
            List<ExcelErro> list = new List<ExcelErro>();
            return list;
        }
        #endregion
        #region【Excel上传数据验证,库存查询】
        public static List<ExcelErro> TwentyData(string FileCode, out string StuCode, out string message, out int count)
        {
            message = "";
            StuCode = "";
            count = 0;
            string sql = "";
            DataTable dt;
            List<ExcelErro> list = new List<ExcelErro>();
            return list;
        }
        #region【获取库存的容器中是否同一个产品】
        public static Boolean getSamePNofTote(String PN, String Tote_ID)
        {
            Boolean bRes = false;
            String sql = "";
            String stockPN = "";
            DataTable dt = null;
            if (String.IsNullOrEmpty(PN))
            {
                bRes = true;
            }
            else
            {
                sql = @"select part_number from mes_tk_wms_stock where tote_id='" + Tote_ID + "' and qty>0 ";
                dt = DBHelper.GetTable(sql);
                if (dt.Rows.Count > 0)
                {
                    stockPN = dt.Rows[0]["part_number"].ToString();
                    if (PN == stockPN)
                    {
                        bRes = true;
                    }
                }
                else
                {
                    //仓库中不存在此容器
                    bRes = true;
                }
            }
            return bRes;
        }
        #endregion
        #endregion
        #region【Excel上传数据验证,物料清单】
        public static List<ExcelErro> TwentyOneData(string FileCode, out string StuCode, out string message, out int count)
        {
            message = "";
            StuCode = "";
            count = 0;
            string sql = "";
            DataTable dt;
            List<ExcelErro> list = new List<ExcelErro>();
            return list;
        }
        #endregion
        #endregion
        #region[Excel上传数据提交]
        #region[Excel数据上传,角色权限]
        public static string OneSubmit(string FileCode, string User, out string StuCode)
        {
            string message = "";
            StuCode = "";
            try
            {
            }
            catch (Exception e)
            {
                StuCode = "300";
                message = e.Message;
            }
            return message;
        }
        #endregion
        #region【Excel数据上传,用户角色】
        public static string TwoSubmit(string FileCode, string User, out string StuCode)
        {
            string message = "";
            StuCode = "";
            try
            {
            }
            catch (Exception e)
            {
                StuCode = "300";
                message = e.Message;
            }
            return message;
        }
        #endregion
        #region【Excel数据上传,工位清单】
        public static string ThreeSubmit(string FileCode, string User, out string StuCode)
        {
            string message = "";
            StuCode = "";
            try
            {
            }
            catch (Exception e)
            {
                StuCode = "300";
                message = e.Message;
            }
            return message;
        }
        #endregion
        #region【Excel数据上传,供方清单】
        public static string FourSubmit(string FileCode, string User, out string StuCode)
        {
            string message = "";
            StuCode = "";
            try
            {
            }
            catch (Exception e)
            {
                StuCode = "300";
                message = e.Message;
            }
            return message;
        }
        #endregion
        #region【Excel数据上传,客户清单】
        public static string FiveSubmit(string FileCode, string User, out string StuCode)
        {
            string message = "";
            StuCode = "";
            try
            {
            }
            catch (Exception e)
            {
                StuCode = "300";
                message = e.Message;
            }
            return message;
        }
        #endregion
        #region【Excel数据上传,仓库定义】
        public static string SixOneSubmit(string FileCode, string User, out string StuCode)
        {
            string message = "";
            StuCode = "";
            try
            {
            }
            catch (Exception e)
            {
                StuCode = "300";
                message = e.Message;
            }
            return message;
        }
        #endregion
        #region【Excel数据上传,库区定义】
        public static string SixTwoSubmit(string FileCode, string User, out string StuCode)
        {
            string message = "";
            StuCode = "";
            try
            {
            }
            catch (Exception e)
            {
                StuCode = "300";
                message = e.Message;
            }
            return message;
        }
        #endregion
        #region【Excel数据上传,库位定义】
        public static string SixThreeSubmit(string FileCode, string User, out string StuCode)
        {
            string message = "";
            StuCode = "";
            try
            {
            }
            catch (Exception e)
            {
                StuCode = "300";
                message = e.Message;
            }
            return message;
        }
        #endregion
        #region【Excel数据上传,容器定义】
        public static string SevenSubmit(string FileCode, string User, out string StuCode)
        {
            string message = "";
            StuCode = "";
            try
            {
            }
            catch (Exception e)
            {
                StuCode = "300";
                message = e.Message;
            }
            return message;
        }
        #endregion
        #region【Excel数据上传,存货档案】
        public static string EightSubmit(string FileCode, string User, out string StuCode)
        {
            string message = "";
            StuCode = "";
            try
            {
            }
            catch (Exception e)
            {
                StuCode = "300";
                message = e.Message;
            }
            return message;
        }
        #endregion
        #region【Excel数据上传,设备清单】
        public static string NineSubmit(string FileCode, string User, out string StuCode)
        {
            string message = "";
            StuCode = "";
            try
            {
            }
            catch (Exception e)
            {
                StuCode = "300";
                message = e.Message;
            }
            return message;
        }
        #endregion
        #region【Excel数据上传,设备点检】
        public static string TenSubmit(string FileCode, string User, out string StuCode)
        {
            string message = "";
            StuCode = "";
            try
            {
            }
            catch (Exception e)
            {
                StuCode = "300";
                message = e.Message;
            }
            return message;
        }
        #endregion
        #region【Excel数据上传,设备保养】
        public static string ElevenSubmit(string FileCode, string User, out string StuCode)
        {
            string message = "";
            StuCode = "";
            try
            {
            }
            catch (Exception e)
            {
                StuCode = "300";
                message = e.Message;
            }
            return message;
        }
        #endregion
        #region【Excel数据上传,工装清单】
        public static string TwelveSubmit(string FileCode, string User, out string StuCode)
        {
            string message = "";
            StuCode = "";
            try
            {
            }
            catch (Exception e)
            {
                StuCode = "300";
                message = e.Message;
            }
            return message;
        }
        #endregion
        #region【Excel数据上传,工装点检】
        public static string ThirteenSubmit(string FileCode, string User, out string StuCode)
        {
            string message = "";
            StuCode = "";
            try
            {
            }
            catch (Exception e)
            {
                StuCode = "300";
                message = e.Message;
            }
            return message;
        }
        #endregion
        #region【Excel数据上传,工装保养】
        public static string FourteenSubmit(string FileCode, string User, out string StuCode)
        {
            string message = "";
            StuCode = "";
            try
            {
            }
            catch (Exception e)
            {
                StuCode = "300";
                message = e.Message;
            }
            return message;
        }
        #endregion
        #region【Excel数据上传,工序定义】
        public static string FifteenSubmit(string FileCode, string User, out string StuCode)
        {
            string message = "";
            StuCode = "";
            try
            {
            }
            catch (Exception e)
            {
                StuCode = "300";
                message = e.Message;
            }
            return message;
        }
        #endregion
        #region【Excel数据上传,工艺路线】
        public static string SixteenSubmit(string FileCode, string User, out string StuCode)
        {
            string message = "";
            StuCode = "";
            try
            {
            }
            catch (Exception e)
            {
                StuCode = "300";
                message = e.Message;
            }
            return message;
        }
        #endregion
        #region【Excel数据上传,质检标准】
        public static string SeventeenSubmit(string FileCode, string User, out string StuCode)
        {
            string message = "";
            StuCode = "";
            try
            {
            }
            catch (Exception e)
            {
                StuCode = "300";
                message = e.Message;
            }
            return message;
        }
        #endregion
        #region【Excel数据上传,缺陷定义】
        public static string EighteenSubmit(string FileCode, string User, out string StuCode)
        {
            string message = "";
            StuCode = "";
            try
            {
            }
            catch (Exception e)
            {
                StuCode = "300";
                message = e.Message;
            }
            return message;
        }
        #endregion
        #region【Excel数据上传,生产订单】
        public static string NineteenSubmit(string FileCode, string User, out string StuCode)
        {
            string message = "";
            StuCode = "";
            try
            {
            }
            catch (Exception e)
            {
                StuCode = "300";
                message = e.Message;
            }
            return message;
        }
        #endregion
        #region【Excel数据上传,库存查询】
        public static string TwentySubmit(string FileCode, string User, out string StuCode)
        {
            string message = "";
            StuCode = "";
            try
            {
            }
            catch (Exception e)
            {
                StuCode = "300";
                message = e.Message;
            }
            return message;
        }
        #endregion
        #region【Excel数据上传,物料清单】
        public static string TwentyOneSubmit(string FileCode, string User, out string StuCode)
        {
            string message = "";
            StuCode = "";
            try
            {
            }
            catch (Exception e)
            {
                StuCode = "300";
                message = e.Message;
            }
            return message;
        }
        #endregion
        #endregion
    }
}
VueWebApi/Tools/NPOIHelper.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,190 @@
using NPOI.HSSF.UserModel;
using NPOI.SS.UserModel;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.OleDb;
using System.IO;
using System.Linq;
using System.Web;
namespace VueWebApi.Tools
{
    public class NPOIHelper
    {
        /// <summary>
        /// NPOI简单Demo,快速入门代码
        /// </summary>
        /// <param name="dtSource"></param>
        /// <param name="strFileName"></param>
        /// <remarks>NPOI认为Excel的第一个单元格是:(0,0)</remarks>
        /// <Author>柳永法 http://www.yongfa365.com/ 2010-5-8 22:21:41</Author>
        public static void ExportEasy(DataTable dtSource, string strFileName)
        {
            HSSFWorkbook workbook = new HSSFWorkbook();
            ISheet sheet = workbook.CreateSheet();
            //填充表头
            IRow dataRow = sheet.CreateRow(0);
            foreach (DataColumn column in dtSource.Columns)
            {
                dataRow.CreateCell(column.Ordinal).SetCellValue(column.ColumnName);
            }
            //填充内容
            for (int i = 0; i < dtSource.Rows.Count; i++)
            {
                dataRow = sheet.CreateRow(i + 1);
                for (int j = 0; j < dtSource.Columns.Count; j++)
                {
                    dataRow.CreateCell(j).SetCellValue(dtSource.Rows[i][j].ToString());
                }
            }
            //保存
            using (MemoryStream ms = new MemoryStream())
            {
                using (FileStream fs = new FileStream(strFileName, FileMode.Create, FileAccess.Write))
                {
                    workbook.Write(ms);
                    ms.Flush();
                    ms.Position = 0;
                    byte[] data = ms.ToArray();
                    fs.Write(data, 0, data.Length);
                    fs.Flush();
                }
            }
            //workbook.Dispose();
        }
        public static System.Data.DataTable GetExcelDatatable(string fileUrl)
        {
            string strConn = "Provider=Microsoft.Ace.OleDb.12.0;" + "data source=" + fileUrl + ";Extended Properties='Excel 12.0; HDR=Yes; IMEX=1'";
            DataSet myDataSet = new DataSet();
            //连接串
            OleDbConnection conn = new OleDbConnection(strConn);
            conn.Open();
            //返回Excel的架构,包括各个sheet表的名称,类型,创建时间和修改时间等 
            DataTable dtSheetName = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "Table" });
            //包含excel中表名的字符串数组
            string[] strTableNames = new string[dtSheetName.Rows.Count];
            for (int k = 0; k < dtSheetName.Rows.Count; k++)
            {
                strTableNames[k] = dtSheetName.Rows[k]["TABLE_NAME"].ToString();
            }
            OleDbDataAdapter myCommand = null;
            DataTable dt = new DataTable();
            //从指定的表明查询数据,可先把所有表明列出来供用户选择
            string strExcel = "select*from[" + strTableNames[0] + "]";
            myCommand = new OleDbDataAdapter(strExcel, strConn);
            //myCommand.Fill(dt);
            myCommand.Fill(myDataSet, "ExcelInfo");
            conn.Close();
            DataTable ExcelTable = myDataSet.Tables["ExcelInfo"].DefaultView.ToTable();
            return ExcelTable;
        }
        /// <summary>
        /// å¤šä¸ªsheet导入
        /// </summary>
        /// <param name="fileUrl"></param>
        /// <returns></returns>
        public static List<DataTable> GetExcelDatatableList(string fileUrl)
        {
            List<DataTable> list = new List<DataTable>();
            string strConn = "Provider=Microsoft.Ace.OleDb.12.0;" + "data source=" + fileUrl + ";Extended Properties='Excel 12.0; HDR=Yes; IMEX=1'";
            DataSet myDataSet = new DataSet();
            //连接串
            OleDbConnection conn = new OleDbConnection(strConn);
            conn.Open();
            //返回Excel的架构,包括各个sheet表的名称,类型,创建时间和修改时间等 
            DataTable dtSheetName = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "Table" });
            //包含excel中表名的字符串数组
            string[] strTableNames = new string[dtSheetName.Rows.Count];
            for (int k = 0; k < dtSheetName.Rows.Count; k++)
            {
                strTableNames[k] = dtSheetName.Rows[k]["TABLE_NAME"].ToString();
            }
            for (int i = 0; i < strTableNames.Length; i++)
            {
                OleDbDataAdapter myCommand = null;
                DataTable dt = new DataTable();
                //从指定的表明查询数据,可先把所有表明列出来供用户选择
                string strExcel = "select*from[" + strTableNames[i].Trim() + "]";
                myCommand = new OleDbDataAdapter(strExcel, strConn);
                //myCommand.Fill(dt);
                myCommand.Fill(myDataSet, "" + i + "");
                conn.Close();
                DataTable ExcelTable = myDataSet.Tables[i].DefaultView.ToTable();
                list.Add(ExcelTable);
            }
            return list;
        }
        /// <summary>
        /// å¤šä¸ªsheet导入
        /// </summary>
        /// <param name="fileUrl"></param>
        /// <returns></returns>
        public static List<DataTable> GetExcelDatatableListName(string fileUrl)
        {
            List<DataTable> list = new List<DataTable>();
            string strConn = "Provider=Microsoft.Ace.OleDb.12.0;" + "data source=" + fileUrl + ";Extended Properties='Excel 12.0; HDR=Yes; IMEX=1'";
            DataSet myDataSet = new DataSet();
            //连接串
            OleDbConnection conn = new OleDbConnection(strConn);
            conn.Open();
            //返回Excel的架构,包括各个sheet表的名称,类型,创建时间和修改时间等 
            DataTable dtSheetName = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "Table" });
            for (int m = 0; m < dtSheetName.Rows.Count; m++)
            {
                string TABLE_NAME = dtSheetName.Rows[m]["TABLE_NAME"].ToString();
                string FilterDatabase = "$FilterDatabase";
                if (TABLE_NAME.Contains(FilterDatabase))
                {
                    dtSheetName.Rows.Remove(dtSheetName.Rows[m]);
                }
            }
            //包含excel中表名的字符串数组
            string[] strTableNames = new string[dtSheetName.Rows.Count];
            for (int k = 0; k < dtSheetName.Rows.Count; k++)
            {
                strTableNames[k] = dtSheetName.Rows[k]["TABLE_NAME"].ToString();
            }
            for (int i = 0; i < strTableNames.Length; i++)
            {
                OleDbDataAdapter myCommand = null;
                DataTable dt = new DataTable();
                //从指定的表明查询数据,可先把所有表明列出来供用户选择
                string strExcel = "select*from[" + strTableNames[i].Trim() + "]";
                myCommand = new OleDbDataAdapter(strExcel, strConn);
                //myCommand.Fill(dt);
                myCommand.Fill(myDataSet, "" + i + "");
                conn.Close();
                DataTable ExcelTable = myDataSet.Tables[i].DefaultView.ToTable();
                ExcelTable.TableName = strTableNames[i].Trim();
                list.Add(ExcelTable);
            }
            return list;
        }
    }
}
VueWebApi/Tools/SeachEncode.cs
@@ -3,6 +3,7 @@
using System.Collections.Generic;
using System.Linq;
using System.Web;
using VueWebApi.Models;
namespace VueWebApi.Tools
{
@@ -332,5 +333,153 @@
            return mes;
        }
        #endregion
        #region [根据角色编码查询功能菜单]
        /// <summary>
        /// æ ¹æ®è§’色编码查询功能菜单
        /// </summary>
        /// <param name="rolecode"></param>
        /// <param name="type"></param>
        /// <returns></returns>
        public static List<TreeDM> RightLocation(string rolecode,string type)
        {
            string sql = "";
            var dynamicParams = new DynamicParameters();
            List<TreeDM> list = new List<TreeDM>();
            switch (type)
            {
                case "PC":  //PC
                    //第一层
                    sql = @"select distinct A.parent_id from TRight A
                        inner join  TRoleRightRelation B on A.right_code=B.right_code
                        where B.role_code='S001' and A.Type='PC' ";
                    dynamicParams.Add("@rolecode", rolecode);
                    dynamicParams.Add("@type", type);
                    var data1 = DapperHelper.selectdata(sql, dynamicParams);
                    TreeDM cmp = new TreeDM();
                    if (data1.Rows.Count > 0)
                    {
                        cmp.code = "PC";
                        cmp.name = "PC";
                        cmp.flag = "Y";
                    }
                    else
                    {
                        cmp.code = "PC";
                        cmp.name = "PC";
                        cmp.flag = "N";
                    }
                    cmp.children = new List<TreeDMOne>();
                    //第二层
                    sql = @"select A.right_code,A.right_name,(case when C.parent_id is null then 'N' else 'Y' end) flag
                                 from TRight A
                                 left join (
                                  select distinct A.parent_id from TRight A
                                  inner join  TRoleRightRelation B on A.right_code=B.right_code where B.role_code=@rolecode
                                 ) C on A.right_code=C.parent_id
                                 where A.Type=@type and A.parent_id='0'";
                    dynamicParams.Add("@rolecode", rolecode);
                    dynamicParams.Add("@type", type);
                    var data2 = DapperHelper.selectdata(sql, dynamicParams);
                    for (int i = 0; i < data2.Rows.Count; i++)
                    {
                        TreeDMOne cmp1 = new TreeDMOne();
                        cmp1.code = data2.Rows[i]["RIGHT_CODE"].ToString();
                        cmp1.name = data2.Rows[i]["RIGHT_NAME"].ToString();
                        cmp1.flag = data2.Rows[i]["FLAG"].ToString();
                        cmp.children.Add(cmp1);
                        cmp1.children = new List<TreeDMTwo>();
                        //第三层
                        sql = @"select A.right_code,A.right_name,(case when C.right_code is null then 'N' else 'Y' end) flag
                                     from TRight A
                                     left join (
                                      select  B.right_code from TRight A
                                      inner join  TRoleRightRelation B on A.right_code=B.right_code where A.parent_id=@right_code
                                     ) C on A.right_code=C.right_code
                                     where A.parent_id=@right_code";
                        dynamicParams.Add("@right_code", data2.Rows[i]["RIGHT_CODE"].ToString());
                        var data3 = DapperHelper.selectdata(sql, dynamicParams);
                        for (int j = 0; j < data3.Rows.Count; j++)
                        {
                            TreeDMTwo cmp2 = new TreeDMTwo();
                            cmp2.code = data3.Rows[j]["RIGHT_CODE"].ToString();
                            cmp2.name = data3.Rows[j]["RIGHT_NAME"].ToString();
                            cmp2.flag = data3.Rows[j]["FLAG"].ToString();
                            cmp1.children.Add(cmp2);
                        }
                    }
                    list.Add(cmp);
                    break;
                case "APP":  //APP
                             //第一层
                    sql = @"select distinct A.parent_id from TRight A
                        inner join  TRoleRightRelation B on A.right_code=B.right_code
                        where B.role_code='S001' and A.Type='PC' ";
                    dynamicParams.Add("@rolecode", rolecode);
                    dynamicParams.Add("@type", type);
                    var date1 = DapperHelper.selectdata(sql, dynamicParams);
                    TreeDM cmt = new TreeDM();
                    if (date1.Rows.Count > 0)
                    {
                        cmt.code = "PC";
                        cmt.name = "PC";
                        cmt.flag = "Y";
                    }
                    else
                    {
                        cmt.code = "PC";
                        cmt.name = "PC";
                        cmt.flag = "N";
                    }
                    cmt.children = new List<TreeDMOne>();
                    //第二层
                    sql = @"select A.right_code,A.right_name,(case when C.parent_id is null then 'N' else 'Y' end) flag
                                 from TRight A
                                 left join (
                                  select distinct A.parent_id from TRight A
                                  inner join  TRoleRightRelation B on A.right_code=B.right_code where B.role_code=@rolecode
                                 ) C on A.right_code=C.parent_id
                                 where A.Type=@type and A.parent_id='0'";
                    dynamicParams.Add("@rolecode", rolecode);
                    dynamicParams.Add("@type", type);
                    var date2 = DapperHelper.selectdata(sql, dynamicParams);
                    for (int i = 0; i < date2.Rows.Count; i++)
                    {
                        TreeDMOne cmt1 = new TreeDMOne();
                        cmt1.code = date2.Rows[i]["RIGHT_CODE"].ToString();
                        cmt1.name = date2.Rows[i]["RIGHT_NAME"].ToString();
                        cmt1.flag = date2.Rows[i]["FLAG"].ToString();
                        cmt.children.Add(cmt1);
                        cmt1.children = new List<TreeDMTwo>();
                        //第三层
                        sql = @"select A.right_code,A.right_name,(case when C.right_code is null then 'N' else 'Y' end) flag
                                     from TRight A
                                     left join (
                                      select  B.right_code from TRight A
                                      inner join  TRoleRightRelation B on A.right_code=B.right_code where A.parent_id=@right_code
                                     ) C on A.right_code=C.right_code
                                     where A.parent_id=@right_code";
                        dynamicParams.Add("@right_code", date2.Rows[i]["RIGHT_CODE"].ToString());
                        var date3 = DapperHelper.selectdata(sql, dynamicParams);
                        for (int j = 0; j < date3.Rows.Count; j++)
                        {
                            TreeDMTwo cmt2 = new TreeDMTwo();
                            cmt2.code = date3.Rows[j]["RIGHT_CODE"].ToString();
                            cmt2.name = date3.Rows[j]["RIGHT_NAME"].ToString();
                            cmt2.flag = date3.Rows[j]["FLAG"].ToString();
                            cmt1.children.Add(cmt2);
                        }
                    }
                    list.Add(cmt);
                    break;
                default:
                    break;
            }
            return list;
        }
        #endregion
    }
}
VueWebApi/VueWebApi.csproj
@@ -46,8 +46,14 @@
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <ItemGroup>
    <Reference Include="BouncyCastle.Crypto, Version=1.8.9.0, Culture=neutral, PublicKeyToken=0e99375e54769942, processorArchitecture=MSIL">
      <HintPath>..\packages\Portable.BouncyCastle.1.8.9\lib\net40\BouncyCastle.Crypto.dll</HintPath>
    </Reference>
    <Reference Include="Dapper, Version=2.0.0.0, Culture=neutral, processorArchitecture=MSIL">
      <HintPath>..\packages\Dapper.2.0.123\lib\net461\Dapper.dll</HintPath>
    </Reference>
    <Reference Include="ICSharpCode.SharpZipLib, Version=1.3.3.11, Culture=neutral, PublicKeyToken=1b03e6acf1164f73, processorArchitecture=MSIL">
      <HintPath>..\packages\SharpZipLib.1.3.3\lib\net45\ICSharpCode.SharpZipLib.dll</HintPath>
    </Reference>
    <Reference Include="JWT, Version=8.0.0.0, Culture=neutral, PublicKeyToken=6f98bca0f40f2ecf, processorArchitecture=MSIL">
      <HintPath>..\packages\JWT.8.9.0\lib\net46\JWT.dll</HintPath>
@@ -59,6 +65,18 @@
      <HintPath>..\packages\Microsoft.Bcl.AsyncInterfaces.5.0.0\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll</HintPath>
    </Reference>
    <Reference Include="Microsoft.CSharp" />
    <Reference Include="NPOI, Version=2.5.6.0, Culture=neutral, PublicKeyToken=0df73ec7942b34e1, processorArchitecture=MSIL">
      <HintPath>..\packages\NPOI.2.5.6\lib\net45\NPOI.dll</HintPath>
    </Reference>
    <Reference Include="NPOI.OOXML, Version=2.5.6.0, Culture=neutral, PublicKeyToken=0df73ec7942b34e1, processorArchitecture=MSIL">
      <HintPath>..\packages\NPOI.2.5.6\lib\net45\NPOI.OOXML.dll</HintPath>
    </Reference>
    <Reference Include="NPOI.OpenXml4Net, Version=2.5.6.0, Culture=neutral, PublicKeyToken=0df73ec7942b34e1, processorArchitecture=MSIL">
      <HintPath>..\packages\NPOI.2.5.6\lib\net45\NPOI.OpenXml4Net.dll</HintPath>
    </Reference>
    <Reference Include="NPOI.OpenXmlFormats, Version=2.5.6.0, Culture=neutral, PublicKeyToken=0df73ec7942b34e1, processorArchitecture=MSIL">
      <HintPath>..\packages\NPOI.2.5.6\lib\net45\NPOI.OpenXmlFormats.dll</HintPath>
    </Reference>
    <Reference Include="Pipelines.Sockets.Unofficial, Version=1.0.0.0, Culture=neutral, PublicKeyToken=42ea0a778e13fbe2, processorArchitecture=MSIL">
      <HintPath>..\packages\Pipelines.Sockets.Unofficial.2.2.2\lib\net461\Pipelines.Sockets.Unofficial.dll</HintPath>
    </Reference>
@@ -203,6 +221,7 @@
    <Compile Include="App_Start\FilterConfig.cs" />
    <Compile Include="App_Start\RouteConfig.cs" />
    <Compile Include="App_Start\SwaggerConfig.cs" />
    <Compile Include="App_Start\SwaggerControllerDescProvider.cs" />
    <Compile Include="App_Start\WebApiConfig.cs" />
    <Compile Include="Areas\HelpPage\ApiDescriptionExtensions.cs" />
    <Compile Include="Areas\HelpPage\App_Start\HelpPageConfig.cs" />
@@ -233,20 +252,24 @@
    <Compile Include="Areas\HelpPage\SampleGeneration\TextSample.cs" />
    <Compile Include="Areas\HelpPage\XmlDocumentationProvider.cs" />
    <Compile Include="Controllers\BasicSettingController.cs" />
    <Compile Include="Controllers\ImportExcelController.cs" />
    <Compile Include="Controllers\LoginController.cs" />
    <Compile Include="Controllers\SystemSettingController.cs" />
    <Compile Include="Controllers\ValuesController.cs" />
    <Compile Include="DLL\BLL\BasicSettingBLL.cs" />
    <Compile Include="DLL\BLL\ExcelCheckBLL.cs" />
    <Compile Include="DLL\BLL\LoginBLL.cs" />
    <Compile Include="DLL\BLL\SystemSettingBLL.cs" />
    <Compile Include="DLL\BLL\UserDataBLL.cs" />
    <Compile Include="DLL\DAL\BasicSettingDAL.cs" />
    <Compile Include="DLL\DAL\ExcelCheckDAL.cs" />
    <Compile Include="DLL\DAL\LoginDAL.cs" />
    <Compile Include="DLL\DAL\SystemSettingDAL.cs" />
    <Compile Include="DLL\DAL\UserDataDAL.cs" />
    <Compile Include="Global.asax.cs">
      <DependentUpon>Global.asax</DependentUpon>
    </Compile>
    <Compile Include="Models\ExcelErro.cs" />
    <Compile Include="Models\ObjectData.cs" />
    <Compile Include="Models\RoleUserSubmit.cs" />
    <Compile Include="Models\TreeDG.cs" />
@@ -259,8 +282,13 @@
    <Compile Include="Tools\DataOperator.cs" />
    <Compile Include="Tools\DBHelper.cs" />
    <Compile Include="Tools\Encrypt.cs" />
    <Compile Include="Tools\ExcelList.cs" />
    <Compile Include="Tools\ExcelModelCheck.cs" />
    <Compile Include="Tools\ImportExcel.cs" />
    <Compile Include="Tools\ImportExcelData.cs" />
    <Compile Include="Tools\JwtTools.cs" />
    <Compile Include="Tools\LogHelper.cs" />
    <Compile Include="Tools\NPOIHelper.cs" />
    <Compile Include="Tools\RedisHelper.cs" />
    <Compile Include="Tools\Regedit.cs" />
    <Compile Include="Tools\SeachEncode.cs" />
@@ -270,6 +298,130 @@
  </ItemGroup>
  <ItemGroup>
    <Content Include="Areas\HelpPage\HelpPage.css" />
    <Content Include="bin\Antlr3.Runtime.dll" />
    <Content Include="bin\Antlr3.Runtime.pdb" />
    <Content Include="bin\Dapper.dll" />
    <Content Include="bin\Dapper.xml" />
    <Content Include="bin\JWT.dll" />
    <Content Include="bin\JWT.pdb" />
    <Content Include="bin\JWT.xml" />
    <Content Include="bin\log4net.dll" />
    <Content Include="bin\log4net.xml" />
    <Content Include="bin\Microsoft.Bcl.AsyncInterfaces.dll" />
    <Content Include="bin\Microsoft.Bcl.AsyncInterfaces.xml" />
    <Content Include="bin\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.dll" />
    <Content Include="bin\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.xml" />
    <Content Include="bin\Microsoft.Web.Infrastructure.dll" />
    <Content Include="bin\Newtonsoft.Json.dll" />
    <Content Include="bin\Newtonsoft.Json.xml" />
    <Content Include="bin\Pipelines.Sockets.Unofficial.dll" />
    <Content Include="bin\Pipelines.Sockets.Unofficial.xml" />
    <Content Include="bin\roslyn\csc.exe" />
    <Content Include="bin\roslyn\csi.exe" />
    <Content Include="bin\roslyn\Microsoft.Build.Tasks.CodeAnalysis.dll" />
    <Content Include="bin\roslyn\Microsoft.CodeAnalysis.CSharp.dll" />
    <Content Include="bin\roslyn\Microsoft.CodeAnalysis.CSharp.Scripting.dll" />
    <Content Include="bin\roslyn\Microsoft.CodeAnalysis.dll" />
    <Content Include="bin\roslyn\Microsoft.CodeAnalysis.Scripting.dll" />
    <Content Include="bin\roslyn\Microsoft.CodeAnalysis.VisualBasic.dll" />
    <Content Include="bin\roslyn\Microsoft.DiaSymReader.Native.amd64.dll" />
    <Content Include="bin\roslyn\Microsoft.DiaSymReader.Native.x86.dll" />
    <Content Include="bin\roslyn\Microsoft.Win32.Primitives.dll" />
    <Content Include="bin\roslyn\System.AppContext.dll" />
    <Content Include="bin\roslyn\System.Collections.Immutable.dll" />
    <Content Include="bin\roslyn\System.Console.dll" />
    <Content Include="bin\roslyn\System.Diagnostics.DiagnosticSource.dll" />
    <Content Include="bin\roslyn\System.Diagnostics.FileVersionInfo.dll" />
    <Content Include="bin\roslyn\System.Diagnostics.StackTrace.dll" />
    <Content Include="bin\roslyn\System.Globalization.Calendars.dll" />
    <Content Include="bin\roslyn\System.IO.Compression.dll" />
    <Content Include="bin\roslyn\System.IO.Compression.ZipFile.dll" />
    <Content Include="bin\roslyn\System.IO.FileSystem.dll" />
    <Content Include="bin\roslyn\System.IO.FileSystem.Primitives.dll" />
    <Content Include="bin\roslyn\System.Net.Http.dll" />
    <Content Include="bin\roslyn\System.Net.Sockets.dll" />
    <Content Include="bin\roslyn\System.Reflection.Metadata.dll" />
    <Content Include="bin\roslyn\System.Runtime.InteropServices.RuntimeInformation.dll" />
    <Content Include="bin\roslyn\System.Security.Cryptography.Algorithms.dll" />
    <Content Include="bin\roslyn\System.Security.Cryptography.Encoding.dll" />
    <Content Include="bin\roslyn\System.Security.Cryptography.Primitives.dll" />
    <Content Include="bin\roslyn\System.Security.Cryptography.X509Certificates.dll" />
    <Content Include="bin\roslyn\System.Text.Encoding.CodePages.dll" />
    <Content Include="bin\roslyn\System.Threading.Tasks.Extensions.dll" />
    <Content Include="bin\roslyn\System.ValueTuple.dll" />
    <Content Include="bin\roslyn\System.Xml.ReaderWriter.dll" />
    <Content Include="bin\roslyn\System.Xml.XmlDocument.dll" />
    <Content Include="bin\roslyn\System.Xml.XPath.dll" />
    <Content Include="bin\roslyn\System.Xml.XPath.XDocument.dll" />
    <Content Include="bin\roslyn\vbc.exe" />
    <Content Include="bin\roslyn\VBCSCompiler.exe" />
    <Content Include="bin\ServiceStack.Common.dll" />
    <Content Include="bin\ServiceStack.Common.xml" />
    <Content Include="bin\ServiceStack.Interfaces.dll" />
    <Content Include="bin\ServiceStack.Interfaces.xml" />
    <Content Include="bin\ServiceStack.Redis.dll" />
    <Content Include="bin\ServiceStack.Redis.xml" />
    <Content Include="bin\ServiceStack.Text.dll" />
    <Content Include="bin\ServiceStack.Text.xml" />
    <Content Include="bin\StackExchange.Redis.dll" />
    <Content Include="bin\StackExchange.Redis.xml" />
    <Content Include="bin\Swashbuckle.Core.dll" />
    <Content Include="bin\System.Buffers.dll" />
    <Content Include="bin\System.Buffers.xml" />
    <Content Include="bin\System.Diagnostics.PerformanceCounter.dll" />
    <Content Include="bin\System.Diagnostics.PerformanceCounter.xml" />
    <Content Include="bin\System.IO.Compression.dll" />
    <Content Include="bin\System.IO.Pipelines.dll" />
    <Content Include="bin\System.IO.Pipelines.xml" />
    <Content Include="bin\System.Memory.dll" />
    <Content Include="bin\System.Memory.xml" />
    <Content Include="bin\System.Net.Http.Formatting.dll" />
    <Content Include="bin\System.Net.Http.Formatting.xml" />
    <Content Include="bin\System.Numerics.Vectors.dll" />
    <Content Include="bin\System.Numerics.Vectors.xml" />
    <Content Include="bin\System.Runtime.CompilerServices.Unsafe.dll" />
    <Content Include="bin\System.Runtime.CompilerServices.Unsafe.xml" />
    <Content Include="bin\System.Runtime.InteropServices.RuntimeInformation.dll" />
    <Content Include="bin\System.Threading.Channels.dll" />
    <Content Include="bin\System.Threading.Channels.xml" />
    <Content Include="bin\System.Threading.Tasks.Extensions.dll" />
    <Content Include="bin\System.Threading.Tasks.Extensions.xml" />
    <Content Include="bin\System.Web.Cors.dll" />
    <Content Include="bin\System.Web.Helpers.dll" />
    <Content Include="bin\System.Web.Helpers.xml" />
    <Content Include="bin\System.Web.Http.Cors.dll" />
    <Content Include="bin\System.Web.Http.Cors.xml" />
    <Content Include="bin\System.Web.Http.dll" />
    <Content Include="bin\System.Web.Http.WebHost.dll" />
    <Content Include="bin\System.Web.Http.WebHost.xml" />
    <Content Include="bin\System.Web.Http.xml" />
    <Content Include="bin\System.Web.Mvc.dll" />
    <Content Include="bin\System.Web.Mvc.xml" />
    <Content Include="bin\System.Web.Optimization.dll" />
    <Content Include="bin\System.Web.Optimization.xml" />
    <Content Include="bin\System.Web.Razor.dll" />
    <Content Include="bin\System.Web.Razor.xml" />
    <Content Include="bin\System.Web.WebPages.Deployment.dll" />
    <Content Include="bin\System.Web.WebPages.Deployment.xml" />
    <Content Include="bin\System.Web.WebPages.dll" />
    <Content Include="bin\System.Web.WebPages.Razor.dll" />
    <Content Include="bin\System.Web.WebPages.Razor.xml" />
    <Content Include="bin\System.Web.WebPages.xml" />
    <Content Include="bin\VueWebApi.dll" />
    <Content Include="bin\VueWebApi.pdb" />
    <Content Include="bin\VueWebApi.xml" />
    <Content Include="bin\WebActivatorEx.dll" />
    <Content Include="bin\WebGrease.dll" />
    <Content Include="bin\zh-Hans\System.Net.Http.Formatting.resources.dll" />
    <Content Include="bin\zh-Hans\System.Web.Helpers.resources.dll" />
    <Content Include="bin\zh-Hans\System.Web.Http.resources.dll" />
    <Content Include="bin\zh-Hans\System.Web.Http.WebHost.resources.dll" />
    <Content Include="bin\zh-Hans\System.Web.Mvc.resources.dll" />
    <Content Include="bin\zh-Hans\System.Web.Optimization.resources.dll" />
    <Content Include="bin\zh-Hans\System.Web.Razor.resources.dll" />
    <Content Include="bin\zh-Hans\System.Web.WebPages.Deployment.resources.dll" />
    <Content Include="bin\zh-Hans\System.Web.WebPages.Razor.resources.dll" />
    <Content Include="bin\zh-Hans\System.Web.WebPages.resources.dll" />
    <Content Include="Content\bootstrap-theme.css" />
    <Content Include="Content\bootstrap-theme.min.css" />
    <Content Include="Content\bootstrap.css" />
@@ -300,6 +452,17 @@
    <Content Include="Areas\HelpPage\Views\Help\Api.cshtml" />
    <Content Include="log4net.config" />
    <Content Include="libman.json" />
    <Content Include="bin\roslyn\csc.exe.config" />
    <Content Include="bin\roslyn\csc.rsp" />
    <Content Include="bin\roslyn\csi.exe.config" />
    <Content Include="bin\roslyn\csi.rsp" />
    <Content Include="bin\roslyn\Microsoft.CSharp.Core.targets" />
    <Content Include="bin\roslyn\Microsoft.Managed.Core.targets" />
    <Content Include="bin\roslyn\Microsoft.VisualBasic.Core.targets" />
    <Content Include="bin\roslyn\vbc.exe.config" />
    <Content Include="bin\roslyn\vbc.rsp" />
    <Content Include="bin\roslyn\VBCSCompiler.exe.config" />
    <Content Include="bin\VueWebApi.dll.config" />
    <None Include="Scripts\jquery-3.4.1.intellisense.js" />
    <Content Include="Scripts\jquery-3.4.1.js" />
    <Content Include="Scripts\jquery-3.4.1.min.js" />
@@ -323,6 +486,9 @@
  </ItemGroup>
  <ItemGroup>
    <Folder Include="App_Data\" />
    <Folder Include="Excel\" />
    <Folder Include="File\excel\" />
    <Folder Include="InExcel\" />
  </ItemGroup>
  <ItemGroup>
    <Content Include="fonts\glyphicons-halflings-regular.woff2" />
VueWebApi/VueWebApi.csproj.user
@@ -8,9 +8,17 @@
    <IISExpressWindowsAuthentication />
    <IISExpressUseClassicPipelineMode />
    <UseGlobalApplicationHostFile />
    <LastActiveSolutionConfig>Release|Any CPU</LastActiveSolutionConfig>
    <LastActiveSolutionConfig>Debug|Any CPU</LastActiveSolutionConfig>
    <NameOfLastUsedPublishProfile>D:\新凯迪MES\VueWebApi\VueWebApi\Properties\PublishProfiles\FolderProfile.pubxml</NameOfLastUsedPublishProfile>
    <ProjectView>ShowAllFiles</ProjectView>
    <Controller_SelectedScaffolderID>ApiControllerEmptyScaffolder</Controller_SelectedScaffolderID>
    <Controller_SelectedScaffolderCategoryPath>root/Common/Web API</Controller_SelectedScaffolderCategoryPath>
    <WebStackScaffolding_ControllerDialogWidth>600</WebStackScaffolding_ControllerDialogWidth>
    <WebStackScaffolding_IsLayoutPageSelected>True</WebStackScaffolding_IsLayoutPageSelected>
    <WebStackScaffolding_IsPartialViewSelected>False</WebStackScaffolding_IsPartialViewSelected>
    <WebStackScaffolding_IsReferencingScriptLibrariesSelected>True</WebStackScaffolding_IsReferencingScriptLibrariesSelected>
    <WebStackScaffolding_LayoutPageFile />
    <WebStackScaffolding_IsAsyncSelected>False</WebStackScaffolding_IsAsyncSelected>
  </PropertyGroup>
  <ProjectExtensions>
    <VisualStudio>
VueWebApi/Web.config
@@ -15,13 +15,15 @@
      <!--本地环境-->
      <!--<add key="DBServer" value="Data Source=.;Initial Catalog=vmes;Integrated Security=True" />-->
      <!--服务器环境-->
      <add key="DBServer" value="Data Source=121.196.36.24;Initial Catalog=vmes;User ID=sa;Password=xkd@20220602"/>
      <add key="DBServer" value="Data Source=121.196.36.24;Initial Catalog=vmes;User ID=sa;Password=xkd@20220602" />
      <!--redis数据库链接配置ip-->
      <add key="RedisConnIp" value="127.0.0.1" />
      <!--redis数据库链接配置端口号-->
      <add key="RedisConnPort" value="6379" />
      <!--key失效时间30秒-->
      <add key="RedisKeyTimeCont" value="120" />
      <!--Excel导出模板配置IP-->
      <add key="FileIP" value="http://121.196.36.24:8001/"/>
    <add key="webpages:Version" value="3.0.0.0" />
    <add key="webpages:Enabled" value="false" />
    <add key="ClientValidationEnabled" value="true" />
@@ -35,25 +37,25 @@
      <security>
          <requestFiltering>
              <!--主要是maxAllowedContentLength属性-->
              <requestLimits maxAllowedContentLength="2147483647" maxQueryString="102400"/>
              <requestLimits maxAllowedContentLength="2147483647" maxQueryString="102400" />
          </requestFiltering>
      </security>
      <httpProtocol>
          <customHeaders>
              <add name="Access-Control-Allow-Origin" value="*"/>
              <add name="Access-Control-Allow-Headers" value="Content-Type"/>
              <add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS"/>
              <add name="Access-Control-Allow-Origin" value="*" />
              <add name="Access-Control-Allow-Headers" value="Content-Type" />
              <add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />
          </customHeaders>
      </httpProtocol>
      <modules runAllManagedModulesForAllRequests="true"/>
      <validation validateIntegratedModeConfiguration="false"/>
      <modules runAllManagedModulesForAllRequests="true" />
      <validation validateIntegratedModeConfiguration="false" />
      <staticContent>
          <remove fileExtension=".woff"/>
          <remove fileExtension=".woff2"/>
          <remove fileExtension=".json"/>
          <mimeMap fileExtension=".woff" mimeType="application/x-font-woff"/>
          <mimeMap fileExtension=".woff2" mimeType="application/font-woff2"/>
          <mimeMap fileExtension=".json" mimeType="application/json"/>
          <remove fileExtension=".woff" />
          <remove fileExtension=".woff2" />
          <remove fileExtension=".json" />
          <mimeMap fileExtension=".woff" mimeType="application/x-font-woff" />
          <mimeMap fileExtension=".woff2" mimeType="application/font-woff2" />
          <mimeMap fileExtension=".json" mimeType="application/json" />
      </staticContent>
    <handlers>
      <remove name="ExtensionlessUrlHandler-Integrated-4.0" />
@@ -100,6 +102,10 @@
        <assemblyIdentity name="System.Net.Http.Formatting" publicKeyToken="31bf3856ad364e35" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-5.2.7.0" newVersion="5.2.7.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-4.1.1.0" newVersion="4.1.1.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
  <system.codedom>
VueWebApi/bin/Antlr3.Runtime.pdb
Binary files differ
VueWebApi/bin/BouncyCastle.Crypto.xml
¶Ô±ÈÐÂÎļþ
ÎļþÌ«´ó
VueWebApi/bin/Dapper.xml
ÎļþÒÑɾ³ý
VueWebApi/bin/ICSharpCode.SharpZipLib.pdb
Binary files differ
VueWebApi/bin/ICSharpCode.SharpZipLib.xml
¶Ô±ÈÐÂÎļþ
ÎļþÌ«´ó
VueWebApi/bin/JWT.pdb
Binary files differ
VueWebApi/bin/JWT.xml
ÎļþÒÑɾ³ý
VueWebApi/bin/Microsoft.Bcl.AsyncInterfaces.xml
ÎļþÒÑɾ³ý
VueWebApi/bin/Microsoft.CodeDom.Providers.DotNetCompilerPlatform.xml
ÎļþÒÑɾ³ý
VueWebApi/bin/NPOI.OOXML.pdb
Binary files differ
VueWebApi/bin/NPOI.OOXML.xml
¶Ô±ÈÐÂÎļþ
ÎļþÌ«´ó
VueWebApi/bin/NPOI.OpenXml4Net.pdb
Binary files differ
VueWebApi/bin/NPOI.OpenXml4Net.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,3189 @@
<?xml version="1.0"?>
<doc>
    <assembly>
        <name>NPOI.OpenXml4Net</name>
    </assembly>
    <members>
        <member name="T:NPOI.OpenXml4Net.OPC.CertificateEmbeddingOption">
             Specifies the location where the X.509 certificate that is used in signing is stored.
             @author Julien Chable
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.CertificateEmbeddingOption.IN_CERTIFICATE_PART">
            The certificate is embedded in its own PackagePart.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.CertificateEmbeddingOption.IN_SIGNATURE_PART">
            The certificate is embedded in the SignaturePart that is created for the signature being added.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.CertificateEmbeddingOption.NOT_EMBEDDED">
            The certificate in not embedded in the package.
        </member>
        <member name="T:NPOI.OpenXml4Net.OPC.Configuration">
             Storage class for configuration storage parameters.
             TODO xml syntax checking is no longer done with DOM4j parser -> remove the schema or do it ?
             @author CDubettier, Julen Chable
             @version 1.0
        </member>
        <member name="T:NPOI.OpenXml4Net.OPC.ContentTypes">
             Open Packaging Convention content types (see Annex F : Standard Namespaces
             and Content Types).
             @author CDubettier define some constants, Julien Chable
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.ContentTypes.CORE_PROPERTIES_PART">
            Core Properties part.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.ContentTypes.DIGITAL_SIGNATURE_CERTIFICATE_PART">
            Digital Signature Certificate part.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.ContentTypes.DIGITAL_SIGNATURE_ORIGIN_PART">
            Digital Signature Origin part.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.ContentTypes.DIGITAL_SIGNATURE_XML_SIGNATURE_PART">
            Digital Signature XML Signature part.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.ContentTypes.RELATIONSHIPS_PART">
            Relationships part.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.ContentTypes.CUSTOM_XML_PART">
            Custom XML part.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.ContentTypes.PLAIN_OLD_XML">
            Plain old xml. Note - OOXML uses application/xml, and not text/xml!
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.ContentTypes.IMAGE_TIFF">
             TIFF image format.
             @see <a href="http://partners.adobe.com/public/developer/tiff/index.html#spec">
             http://partners.adobe.com/public/developer/tiff/index.html#spec</a>
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.ContentTypes.IMAGE_PICT">
             Pict image format.
             @see <a href="http://developer.apple.com/documentation/mac/QuickDraw/QuickDraw-2.html">
             http://developer.apple.com/documentation/mac/QuickDraw/QuickDraw-2.html</a>
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.ContentTypes.XML">
            XML file.
        </member>
        <member name="T:NPOI.OpenXml4Net.OPC.EncryptionOption">
             Specifies the encryption option for parts in a Package.
             @author Julien Chable
             @version 0.1
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.EncryptionOption.NONE">
            No encryption.
        </member>
        <!-- Badly formed XML comment ignored for member "T:NPOI.OpenXml4Net.OPC.Internal.ContentType" -->
        <member name="F:NPOI.OpenXml4Net.OPC.Internal.ContentType.type">
            Type in Type/Subtype.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.Internal.ContentType.subType">
            Subtype
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.Internal.ContentType.p">
            Parameters
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.Internal.ContentType.patternTypeSubType">
            Media type compiled pattern for parameters.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.Internal.ContentType.patternTypeSubTypeParams">
            Media type compiled pattern, with parameters.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.Internal.ContentType.patternParams">
            Pattern to match on just the parameters part, to work
            around the Java Regexp group capture behaviour
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.ContentType.#ctor(System.String)">
             Constructor. Check the input with the RFC 2616 grammar.
             @param contentType
                        The content type to store.
             @throws InvalidFormatException
                         If the specified content type is not valid with RFC 2616.
        </member>
        <member name="P:NPOI.OpenXml4Net.OPC.Internal.ContentType.SubType">
             Get the subtype.
             @return The subtype of this content type.
        </member>
        <member name="P:NPOI.OpenXml4Net.OPC.Internal.ContentType.Type">
             Get the type.
             @return The type of this content type.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.ContentType.HasParameters">
            Does this content type have any parameters associated with it?
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.ContentType.GetParameterKeys">
            Return the parameter keys
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.ContentType.GetParameter(System.String)">
             Gets the value associated to the specified key.
             @param key
                        The key of the key/value pair.
             @return The value associated to the specified key.
        </member>
        <member name="T:NPOI.OpenXml4Net.OPC.Internal.ContentTypeManager">
            Manage package content types ([Content_Types].xml part).
            @author Julien Chable
            @version 1.0
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.Internal.ContentTypeManager.CONTENT_TYPES_PART_NAME">
            Content type part name.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.Internal.ContentTypeManager.TYPES_NAMESPACE_URI">
            Content type namespace
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.Internal.ContentTypeManager.container">
            Reference to the package using this content type manager.
        </member>
        <!-- Badly formed XML comment ignored for member "F:NPOI.OpenXml4Net.OPC.Internal.ContentTypeManager.defaultContentType" -->
        <member name="F:NPOI.OpenXml4Net.OPC.Internal.ContentTypeManager.overrideContentType">
            Override content type tree.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.ContentTypeManager.#ctor(System.IO.Stream,NPOI.OpenXml4Net.OPC.OPCPackage)">
            Constructor. Parses the content of the specified input stream.
            @param in
                       If different of <i>null</i> then the content types part is
                       retrieve and parse.
            @throws InvalidFormatException
                        If the content types part content is not valid.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.ContentTypeManager.AddContentType(NPOI.OpenXml4Net.OPC.PackagePartName,System.String)">
            Build association extention-> content type (will be stored in
            [Content_Types].xml) for example ContentType="image/png" Extension="png"
            <p>
            [M2.8]: When adding a new part to a package, the package implementer
            shall ensure that a content type for that part is specified in the
            Content Types stream; the package implementer shall perform the steps
            described in &#167;9.1.2.3:
            </p><p>
            1. Get the extension from the part name by taking the substring to the
            right of the rightmost occurrence of the dot character (.) from the
            rightmost segment.
            </p><p>
            2. If a part name has no extension, a corresponding Override element
            shall be added to the Content Types stream.
            </p><p>
            3. Compare the resulting extension with the values specified for the
            Extension attributes of the Default elements in the Content Types stream.
            The comparison shall be case-insensitive ASCII.
            </p><p>
            4. If there is a Default element with a matching Extension attribute,
            then the content type of the new part shall be compared with the value of
            the ContentType attribute. The comparison might be case-sensitive and
            include every character regardless of the role it plays in the
            content-type grammar of RFC 2616, or it might follow the grammar of RFC
            2616.
            </p><p>
            a. If the content types match, no further action is required.
            </p><p>
            b. If the content types do not match, a new Override element shall be
            added to the Content Types stream. .
            </p><p>
            5. If there is no Default element with a matching Extension attribute, a
            new Default element or Override element shall be added to the Content
            Types stream.
            </p>
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.ContentTypeManager.AddOverrideContentType(NPOI.OpenXml4Net.OPC.PackagePartName,System.String)">
            Add an override content type for a specific part.
            @param partName
                       Name of the part.
            @param contentType
                       Content type of the part.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.ContentTypeManager.AddDefaultContentType(System.String,System.String)">
            Add a content type associated with the specified extension.
            @param extension
                       The part name extension to bind to a content type.
            @param contentType
                       The content type associated with the specified extension.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.ContentTypeManager.RemoveContentType(NPOI.OpenXml4Net.OPC.PackagePartName)">
            <p>
            Delete a content type based on the specified part name. If the specified
            part name is register with an override content type, then this content
            type is remove, else the content type is remove in the default content
            type list if it exists and if no part is associated with it yet.
            </p><p>
            Check rule M2.4: The package implementer shall require that the Content
            Types stream contain one of the following for every part in the package:
            One matching Default element One matching Override element Both a
            matching Default element and a matching Override element, in which case
            the Override element takes precedence.
            </p>
            @param partName
                       The part URI associated with the override content type to
                       delete.
            @exception InvalidOperationException
                           Throws if
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.ContentTypeManager.IsContentTypeRegister(System.String)">
            Check if the specified content type is already register.
            @param contentType
                       The content type to check.
            @return <code>true</code> if the specified content type is already
                    register, then <code>false</code>.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.ContentTypeManager.GetContentType(NPOI.OpenXml4Net.OPC.PackagePartName)">
            Get the content type for the specified part, if any.
            <p>
            Rule [M2.9]: To get the content type of a part, the package implementer
            shall perform the steps described in &#167;9.1.2.4:
            </p><p>
            1. Compare the part name with the values specified for the PartName
            attribute of the Override elements. The comparison shall be
            case-insensitive ASCII.
            </p><p>
            2. If there is an Override element with a matching PartName attribute,
            return the value of its ContentType attribute. No further action is
            required.
            </p><p>
            3. If there is no Override element with a matching PartName attribute,
            then a. Get the extension from the part name by taking the substring to
            the right of the rightmost occurrence of the dot character (.) from the
            rightmost segment. b. Check the Default elements of the Content Types
            stream, comparing the extension with the value of the Extension
            attribute. The comparison shall be case-insensitive ASCII.
            </p><p>
            4. If there is a Default element with a matching Extension attribute,
            return the value of its ContentType attribute. No further action is
            required.
            </p><p>
            5. If neither Override nor Default elements with matching attributes are
            found for the specified part name, the implementation shall not map this
            part name to a part.
            </p>
            @param partName
                       The URI part to check.
            @return The content type associated with the URI (in case of an override
                    content type) or the extension (in case of default content type),
                    else <code>null</code>.
            @exception OpenXml4NetRuntimeException
                           Throws if the content type manager is not able to find the
                           content from an existing part.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.ContentTypeManager.ClearAll">
            Clear all content types.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.ContentTypeManager.ClearOverrideContentTypes">
            Clear all override content types.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.ContentTypeManager.ParseContentTypesFile(System.IO.Stream)">
            Parse the content types part.
            @throws InvalidFormatException
                        Throws if the content type doesn't exist or the XML format is
                        invalid.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.ContentTypeManager.Save(System.IO.Stream)">
            Save the contents type part.
            @param outStream
                       The output stream use to save the XML content of the content
                       types part.
            @return <b>true</b> if the operation success, else <b>false</b>.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.ContentTypeManager.AppendSpecificTypes(System.Xml.XmlDocument,System.Xml.XmlElement,System.Collections.Generic.KeyValuePair{NPOI.OpenXml4Net.OPC.PackagePartName,System.String})">
            Use to Append specific type XML elements, use by the save() method.
            @param root
                       XML parent element use to Append this override type element.
            @param entry
                       The values to Append.
            @see #save(java.io.OutputStream)
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.ContentTypeManager.AppendDefaultType(System.Xml.XmlDocument,System.Xml.XmlElement,System.Collections.Generic.KeyValuePair{System.String,System.String})">
            Use to Append default types XML elements, use by the save() metid.
            @param root
                       XML parent element use to Append this default type element.
            @param entry
                       The values to Append.
            @see #save(java.io.OutputStream)
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.ContentTypeManager.SaveImpl(System.Xml.XmlDocument,System.IO.Stream)">
            Specific implementation of the save method. Call by the save() method,
            call before exiting.
            @param out
                       The output stream use to write the content type XML.
        </member>
        <member name="T:NPOI.OpenXml4Net.OPC.Internal.FileHelper">
             Provide useful method to manage file.
             @author Julien Chable
             @version 0.1
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.FileHelper.GetDirectory(System.String)">
             Get the directory part of the specified file path.
             @param f
                        File to process.
             @return The directory path from the specified
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.FileHelper.CopyFile(System.String,System.String)">
             Copy a file.
             @param in
                        The source file.
             @param out
                        The target location.
             @throws IOException
                         If an I/O error occur.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.FileHelper.GetFilename(System.String)">
            Get file name from the specified File object.
        </member>
        <member name="T:NPOI.OpenXml4Net.OPC.Internal.Marshallers.DefaultMarshaller">
             Default marshaller that specified that the part is responsible to marshall its content.
             @author Julien Chable
             @version 1.0
             @see PartMarshaller
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.Marshallers.DefaultMarshaller.Marshall(NPOI.OpenXml4Net.OPC.PackagePart,System.IO.Stream)">
             Save part in the output stream by using the save() method of the part.
             @throws OpenXml4NetException
                         If any error occur.
        </member>
        <member name="T:NPOI.OpenXml4Net.OPC.Internal.Marshallers.PackagePropertiesMarshaller">
             Package properties marshaller.
             @author CDubet, Julien Chable
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.Marshallers.PackagePropertiesMarshaller.Marshall(NPOI.OpenXml4Net.OPC.PackagePart,System.IO.Stream)">
            Marshall package core properties to an XML document. Always return
            <code>true</code>.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.Marshallers.PackagePropertiesMarshaller.AddCategory">
            Add category property element if needed.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.Marshallers.PackagePropertiesMarshaller.AddContentStatus">
            Add content status property element if needed.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.Marshallers.PackagePropertiesMarshaller.AddContentType">
            Add content type property element if needed.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.Marshallers.PackagePropertiesMarshaller.AddCreated">
            Add created property element if needed.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.Marshallers.PackagePropertiesMarshaller.AddCreator">
            Add creator property element if needed.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.Marshallers.PackagePropertiesMarshaller.AddDescription">
            Add description property element if needed.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.Marshallers.PackagePropertiesMarshaller.AddIdentifier">
            Add identifier property element if needed.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.Marshallers.PackagePropertiesMarshaller.AddKeywords">
            Add keywords property element if needed.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.Marshallers.PackagePropertiesMarshaller.AddLanguage">
            Add language property element if needed.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.Marshallers.PackagePropertiesMarshaller.AddLastModifiedBy">
            Add 'last modified by' property if needed.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.Marshallers.PackagePropertiesMarshaller.AddLastPrinted">
             Add 'last printed' property if needed.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.Marshallers.PackagePropertiesMarshaller.AddModified">
            Add modified property element if needed.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.Marshallers.PackagePropertiesMarshaller.AddRevision">
            Add revision property if needed.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.Marshallers.PackagePropertiesMarshaller.AddSubject">
            Add subject property if needed.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.Marshallers.PackagePropertiesMarshaller.AddTitle">
            Add title property if needed.
        </member>
        <member name="T:NPOI.OpenXml4Net.OPC.Internal.Marshallers.ZipPackagePropertiesMarshaller">
             Package core properties marshaller specialized for zipped package.
             @author Julien Chable
        </member>
        <member name="T:NPOI.OpenXml4Net.OPC.Internal.Marshallers.ZipPartMarshaller">
             Zip part marshaller. This marshaller is use to save any part in a zip stream.
             @author Julien Chable
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.Marshallers.ZipPartMarshaller.Marshall(NPOI.OpenXml4Net.OPC.PackagePart,System.IO.Stream)">
             Save the specified part.
             @throws OpenXml4NetException
                         Throws if an internal exception is thrown.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.Marshallers.ZipPartMarshaller.MarshallRelationshipPart(NPOI.OpenXml4Net.OPC.PackageRelationshipCollection,NPOI.OpenXml4Net.OPC.PackagePartName,ICSharpCode.SharpZipLib.Zip.ZipOutputStream)">
             Save relationships into the part.
             @param rels
                        The relationships collection to marshall.
             @param relPartName
                        Part name of the relationship part to marshall.
             @param zos
                        Zip output stream in which to save the XML content of the
                        relationships serialization.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.Internal.MemoryPackagePart.data">
            Storage for the part data.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.MemoryPackagePart.#ctor(NPOI.OpenXml4Net.OPC.OPCPackage,NPOI.OpenXml4Net.OPC.PackagePartName,System.String)">
            Constructor.
            @param pack
                       The owner package.
            @param partName
                       The part name.
            @param contentType
                       The content type.
            @throws InvalidFormatException
                        If the specified URI is not OPC compliant.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.MemoryPackagePart.#ctor(NPOI.OpenXml4Net.OPC.OPCPackage,NPOI.OpenXml4Net.OPC.PackagePartName,System.String,System.Boolean)">
            Constructor.
            @param pack
                       The owner package.
            @param partName
                       The part name.
            @param contentType
                       The content type.
            @param loadRelationships
                       Specify if the relationships will be loaded.
            @throws InvalidFormatException
                        If the specified URI is not OPC compliant.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.MemoryPackagePartOutputStream.Close">
            Close this stream and flush the content.
            @see #flush()
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.MemoryPackagePartOutputStream.Flush">
            Flush this output stream. This method is called by the close() method.
            Warning : don't call this method for output consistency.
            @see #close()
        </member>
        <member name="T:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart">
            Represents the core properties part of a package.
            @author Julien Chable
            @version 1.0
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.#ctor(NPOI.OpenXml4Net.OPC.OPCPackage,NPOI.OpenXml4Net.OPC.PackagePartName)">
            Constructor.
            @param pack
                       Container package.
            @param partName
                       Name of this part.
            @throws InvalidFormatException
                        Throws if the content is invalid.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.category">
            A categorization of the content of this package.
            [Example: Example values for this property might include: Resume, Letter,
            Financial Forecast, Proposal, Technical Presentation, and so on. This
            value might be used by an application's user interface to facilitate
            navigation of a large Set of documents. end example]
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.contentStatus">
            The status of the content.
            [Example: Values might include "Draft", "Reviewed", and "Final". end
            example]
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.contentType">
            The type of content represented, generally defined by a specific use and
            intended audience.
            [Example: Values might include "Whitepaper", "Security Bulletin", and
            "Exam". end example] [Note: This property is distinct from MIME content
            types as defined in RFC 2616. end note]
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.created">
            Date of creation of the resource.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.creator">
            An entity primarily responsible for making the content of the resource.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.description">
            An explanation of the content of the resource.
            [Example: Values might include an abstract, table of contents, reference
            to a graphical representation of content, and a free-text account of the
            content. end example]
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.identifier">
            An unambiguous reference to the resource within a given context.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.keywords">
            A delimited Set of keywords to support searching and indexing. This is
            typically a list of terms that are not available elsewhere in the
            properties.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.language">
            The language of the intellectual content of the resource.
            [Note: IETF RFC 3066 provides guidance on encoding to represent
            languages. end note]
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.lastModifiedBy">
            The user who performed the last modification. The identification is
            environment-specific.
            [Example: A name, email address, or employee ID. end example] It is
            recommended that this value be as concise as possible.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.lastPrinted">
            The date and time of the last printing.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.modified">
            Date on which the resource was changed.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.revision">
            The revision number.
            [Example: This value might indicate the number of saves or revisions,
            provided the application updates it after each revision. end example]
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.subject">
            The topic of the content of the resource.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.title">
            The name given to the resource.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.version">
            The version number. This value is Set by the user or by the application.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.GetCategoryProperty">
            Get the category property.
            @see org.apache.poi.OpenXml4Net.opc.PackageProperties#getCategoryProperty()
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.GetContentStatusProperty">
            Get content status.
            @see org.apache.poi.OpenXml4Net.opc.PackageProperties#getContentStatusProperty()
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.GetContentTypeProperty">
            Get content type.
            @see org.apache.poi.OpenXml4Net.opc.PackageProperties#getContentTypeProperty()
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.GetCreatedProperty">
            Get created date.
            @see org.apache.poi.OpenXml4Net.opc.PackageProperties#getCreatedProperty()
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.GetCreatedPropertyString">
            Get created date formated into a String.
            @return A string representation of the created date.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.GetCreatorProperty">
            Get creator.
            @see org.apache.poi.OpenXml4Net.opc.PackageProperties#getCreatorProperty()
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.GetDescriptionProperty">
            Get description.
            @see org.apache.poi.OpenXml4Net.opc.PackageProperties#getDescriptionProperty()
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.GetIdentifierProperty">
            Get identifier.
            @see org.apache.poi.OpenXml4Net.opc.PackageProperties#getIdentifierProperty()
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.GetKeywordsProperty">
            Get keywords.
            @see org.apache.poi.OpenXml4Net.opc.PackageProperties#getKeywordsProperty()
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.GetLanguageProperty">
            Get the language.
            @see org.apache.poi.OpenXml4Net.opc.PackageProperties#getLanguageProperty()
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.GetLastModifiedByProperty">
            Get the author of last modifications.
            @see org.apache.poi.OpenXml4Net.opc.PackageProperties#getLastModifiedByProperty()
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.GetLastPrintedProperty">
            Get last printed date.
            @see org.apache.poi.OpenXml4Net.opc.PackageProperties#getLastPrintedProperty()
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.GetLastPrintedPropertyString">
            Get last printed date formated into a String.
            @return A string representation of the last printed date.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.GetModifiedProperty">
            Get modified date.
            @see org.apache.poi.OpenXml4Net.opc.PackageProperties#getModifiedProperty()
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.GetModifiedPropertyString">
            Get modified date formated into a String.
            @return A string representation of the modified date.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.GetRevisionProperty">
            Get revision.
            @see org.apache.poi.OpenXml4Net.opc.PackageProperties#getRevisionProperty()
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.GetSubjectProperty">
            Get subject.
            @see org.apache.poi.OpenXml4Net.opc.PackageProperties#getSubjectProperty()
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.GetTitleProperty">
            Get title.
            @see org.apache.poi.OpenXml4Net.opc.PackageProperties#getTitleProperty()
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.GetVersionProperty">
            Get version.
            @see org.apache.poi.OpenXml4Net.opc.PackageProperties#getVersionProperty()
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.SetCategoryProperty(System.String)">
            Set the category.
            @see org.apache.poi.OpenXml4Net.opc.PackageProperties#setCategoryProperty(java.lang.String)
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.SetContentStatusProperty(System.String)">
            Set the content status.
            @see org.apache.poi.OpenXml4Net.opc.PackageProperties#setContentStatusProperty(java.lang.String)
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.SetContentTypeProperty(System.String)">
            Set the content type.
            @see org.apache.poi.OpenXml4Net.opc.PackageProperties#setContentTypeProperty(java.lang.String)
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.SetCreatedProperty(System.String)">
            Set the created date.
            @see org.apache.poi.OpenXml4Net.opc.PackageProperties#setCreatedProperty(org.apache.poi.OpenXml4Net.util.Nullable)
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.SetCreatedProperty(System.Nullable{System.DateTime})">
            Set the created date.
            @see org.apache.poi.OpenXml4Net.opc.PackageProperties#setCreatedProperty(org.apache.poi.OpenXml4Net.util.Nullable)
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.SetCreatorProperty(System.String)">
            Set the creator.
            @see org.apache.poi.OpenXml4Net.opc.PackageProperties#setCreatorProperty(java.lang.String)
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.SetDescriptionProperty(System.String)">
            Set the description.
            @see org.apache.poi.OpenXml4Net.opc.PackageProperties#setDescriptionProperty(java.lang.String)
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.SetIdentifierProperty(System.String)">
            Set identifier.
            @see org.apache.poi.OpenXml4Net.opc.PackageProperties#setIdentifierProperty(java.lang.String)
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.SetKeywordsProperty(System.String)">
            Set keywords.
            @see org.apache.poi.OpenXml4Net.opc.PackageProperties#setKeywordsProperty(java.lang.String)
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.SetLanguageProperty(System.String)">
            Set language.
            @see org.apache.poi.OpenXml4Net.opc.PackageProperties#setLanguageProperty(java.lang.String)
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.SetLastModifiedByProperty(System.String)">
            Set last modifications author.
            @see org.apache.poi.OpenXml4Net.opc.PackageProperties#setLastModifiedByProperty(java.lang.String)
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.SetLastPrintedProperty(System.String)">
            Set last printed date.
            @see org.apache.poi.OpenXml4Net.opc.PackageProperties#setLastPrintedProperty(org.apache.poi.OpenXml4Net.util.Nullable)
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.SetLastPrintedProperty(System.Nullable{System.DateTime})">
            Set last printed date.
            @see org.apache.poi.OpenXml4Net.opc.PackageProperties#setLastPrintedProperty(org.apache.poi.OpenXml4Net.util.Nullable)
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.SetModifiedProperty(System.String)">
            Set last modification date.
            @see org.apache.poi.OpenXml4Net.opc.PackageProperties#setModifiedProperty(org.apache.poi.OpenXml4Net.util.Nullable)
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.SetModifiedProperty(System.Nullable{System.DateTime})">
            Set last modification date.
            @see org.apache.poi.OpenXml4Net.opc.PackageProperties#setModifiedProperty(org.apache.poi.OpenXml4Net.util.Nullable)
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.SetRevisionProperty(System.String)">
            Set revision.
            @see org.apache.poi.OpenXml4Net.opc.PackageProperties#setRevisionProperty(java.lang.String)
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.SetSubjectProperty(System.String)">
            Set subject.
            @see org.apache.poi.OpenXml4Net.opc.PackageProperties#setSubjectProperty(java.lang.String)
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.SetTitleProperty(System.String)">
            Set title.
            @see org.apache.poi.OpenXml4Net.opc.PackageProperties#setTitleProperty(java.lang.String)
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.SetVersionProperty(System.String)">
            Set version.
            @see org.apache.poi.OpenXml4Net.opc.PackageProperties#setVersionProperty(java.lang.String)
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.SetStringValue(System.String)">
            Convert a strig value into a String
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.SetDateValue(System.String)">
            Convert a string value represented a date into a DateTime?.
            @throws InvalidFormatException
                        Throws if the date format isnot valid.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.GetDateValue(System.Nullable{System.DateTime})">
            Convert a DateTime? into a String.
            @param d
                       The Date to convert.
            @return The formated date or null.
            @see java.util.SimpleDateFormat
        </member>
        <member name="T:NPOI.OpenXml4Net.OPC.Internal.PartMarshaller">
             Object implemented this interface are considered as part marshaller. A part
             marshaller is responsible to marshall a part in order to be save in a
             package.
             @author Julien Chable
             @version 0.1
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.PartMarshaller.Marshall(NPOI.OpenXml4Net.OPC.PackagePart,System.IO.Stream)">
             Save the content of the package in the stream
             @param part
                        Part to marshall.
             @param out
                        The output stream into which the part will be marshall.
             @return false if any marshall error occurs, else <b>true</b>
             @throws OpenXml4NetException
                         Throws only if any other exceptions are thrown by inner
                         methods.
        </member>
        <member name="T:NPOI.OpenXml4Net.OPC.Internal.PartUnmarshaller">
             Object implemented this interface are considered as part unmarshaller. A part
             unmarshaller is responsible to unmarshall a part in order to load it from a
             package.
             @author Julien Chable
             @version 0.1
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.PartUnmarshaller.Unmarshall(NPOI.OpenXml4Net.OPC.Internal.Unmarshallers.UnmarshallContext,System.IO.Stream)">
             Save the content of the package in the stream
             @param in
                        The input stream from which the part will be unmarshall.
             @return The part freshly unmarshall from the input stream.
             @throws OpenXml4NetException
                         Throws only if any other exceptions are thrown by inner
                         methods.
        </member>
        <member name="T:NPOI.OpenXml4Net.OPC.Internal.Unmarshallers.PackagePropertiesUnmarshaller">
             Package properties unmarshaller.
             @author Julien Chable
             @version 1.0
        </member>
        <!-- Badly formed XML comment ignored for member "M:NPOI.OpenXml4Net.OPC.Internal.Unmarshallers.PackagePropertiesUnmarshaller.CheckElementForOPCCompliance(System.Xml.XmlElement)" -->
        <member name="T:NPOI.OpenXml4Net.OPC.Internal.Unmarshallers.UnmarshallContext">
            Context needed for the unmarshall process of a part. This class is immutable.
            @author Julien Chable
            @version 1.0
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.Unmarshallers.UnmarshallContext.#ctor(NPOI.OpenXml4Net.OPC.OPCPackage,NPOI.OpenXml4Net.OPC.PackagePartName)">
            Constructor.
            @param targetPackage
                       Container.
            @param partName
                       Name of the part to unmarshall.
        </member>
        <member name="P:NPOI.OpenXml4Net.OPC.Internal.Unmarshallers.UnmarshallContext.Package">
            @return the container
        </member>
        <member name="P:NPOI.OpenXml4Net.OPC.Internal.Unmarshallers.UnmarshallContext.PartName">
            @return the partName
        </member>
        <member name="P:NPOI.OpenXml4Net.OPC.Internal.Unmarshallers.UnmarshallContext.ZipEntry">
            @return the zipEntry
        </member>
        <member name="T:NPOI.OpenXml4Net.OPC.Internal.ZipContentTypeManager">
            Zip implementation of the ContentTypeManager.
            @author Julien Chable
            @version 1.0
            @see ContentTypeManager
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.ZipContentTypeManager.#ctor(System.IO.Stream,NPOI.OpenXml4Net.OPC.OPCPackage)">
            Delegate constructor to the super constructor.
            @param in
                       The input stream to parse to fill internal content type
                       collections.
            @throws InvalidFormatException
                        If the content types part content is not valid.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.Internal.ZipHelper.FORWARD_SLASH">
            Forward slash use to convert part name between OPC and zip item naming
            conventions.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.Internal.ZipHelper.READ_WRITE_FILE_BUFFER_SIZE">
            Buffer to read data from file. Use big buffer to improve performaces. the
            InputStream class is reading only 8192 bytes per read call (default value
            set by sun)
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.ZipHelper.#ctor">
            Prevent this class to be instancied.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.ZipHelper.GetCorePropertiesZipEntry(NPOI.OpenXml4Net.OPC.ZipPackage)">
             Retrieve the zip entry of the core properties part.
             @throws OpenXml4NetException
                         Throws if internal error occurs.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.ZipHelper.GetContentTypeZipEntry(NPOI.OpenXml4Net.OPC.ZipPackage)">
            Retrieve the Zip entry of the content types part.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.ZipHelper.GetOPCNameFromZipItemName(System.String)">
             Convert a zip name into an OPC name by adding a leading forward slash to
             the specified item name.
             @param zipItemName
                        Zip item name to convert.
             @return An OPC compliant name.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.ZipHelper.GetZipItemNameFromOPCName(System.String)">
             Convert an OPC item name into a zip item name by removing any leading
             forward slash if it exist.
             @param opcItemName
                        The OPC item name to convert.
             @return A zip item name without any leading slashes.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.ZipHelper.GetZipURIFromOPCName(System.String)">
             Convert an OPC item name into a zip URI by removing any leading forward
             slash if it exist.
             @param opcItemName
                        The OPC item name to convert.
             @return A zip URI without any leading slashes.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.ZipHelper.VerifyZipHeader(NPOI.Util.InputStream)">
            Verifies that the given stream starts with a Zip structure.
            Warning - this will consume the first few bytes of the stream,
             you should push-back or reset the stream after use!
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.ZipHelper.OpenZipStream(System.IO.Stream)">
             Opens the specified stream as a secure zip
             @param stream
                        The stream to open.
             @return The zip stream freshly open.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.ZipHelper.OpenZipFile(System.IO.FileInfo)">
             Opens the specified file as a zip, or returns null if no such file exists
             @param file
                        The file to open.
             @return The zip archive freshly open.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.ZipHelper.OpenZipFile(System.String)">
             Retrieve and open a zip file with the specified path.
             @param path
                        The file path.
             @return The zip archive freshly open.
        </member>
        <member name="T:NPOI.OpenXml4Net.OPC.OPCPackage">
            Represents a container that can store multiple data objects.
            @author Julien Chable, CDubet
            @version 0.1
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.OPCPackage.logger">
            Logger.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.OPCPackage.defaultPackageAccess">
            Default package access.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.OPCPackage.packageAccess">
            Package access.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.OPCPackage.partList">
            Package parts collection.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.OPCPackage.relationships">
            Package relationships.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.OPCPackage.partMarshallers">
            Part marshallers by content type.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.OPCPackage.defaultPartMarshaller">
            Default part marshaller.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.OPCPackage.partUnmarshallers">
            Part unmarshallers by content type.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.OPCPackage.packageProperties">
            Core package properties.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.OPCPackage.contentTypeManager">
            Manage parts content types of this package.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.OPCPackage.isDirty">
            Flag if a modification is done to the document.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.OPCPackage.originalPackagePath">
            File path of this package.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.OPCPackage.output">
            Output stream for writing this package.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.#ctor(NPOI.OpenXml4Net.OPC.PackageAccess)">
            Constructor.
            @param access
                       Package access.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.Init">
            Initialize the package instance.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.Open(System.String)">
            Open a package with read/write permission.
            @param path
                       The document path.
            @return A Package object, else <b>null</b>.
            @throws InvalidFormatException
                        If the specified file doesn't exist, and a parsing error
                        occur.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.Open(System.IO.FileInfo)">
             Open a package with read/write permission.
             @param file
                        The file to open.
             @return A Package object, else <b>null</b>.
             @throws InvalidFormatException
                         If the specified file doesn't exist, and a parsing error
                         occur.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.Open(NPOI.OpenXml4Net.Util.ZipEntrySource)">
             Open an user provided {@link ZipEntrySource} with read-only permission.
             This method can be used to stream data into POI.
             Opposed to other open variants, the data is read as-is, e.g. there aren't
             any zip-bomb protection put in place.
             @param zipEntry the custom source
             @return A Package object
             @ if a parsing error occur.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.Open(System.String,NPOI.OpenXml4Net.OPC.PackageAccess)">
            Open a package.
            @param path
                       The document path.
            @param access
                       PackageBase access.
            @return A PackageBase object, else <b>null</b>.
            @throws InvalidFormatException
                        If the specified file doesn't exist, and a parsing error
                        occur.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.Open(System.IO.FileInfo,NPOI.OpenXml4Net.OPC.PackageAccess)">
             Open a package.
             @param file
                        The file to open.
             @param access
                        PackageBase access.
             @return A PackageBase object, else <b>null</b>.
             @throws InvalidFormatException
                         If the specified file doesn't exist, and a parsing error
                         occur.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.Open(System.IO.Stream)">
            Open a package.
            Note - uses quite a bit more memory than {@link #open(String)}, which
            doesn't need to hold the whole zip file in memory, and can take advantage
            of native methods
            @param in
                       The InputStream to read the package from
            @return A PackageBase object
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.OpenOrCreate(System.String)">
            Opens a package if it exists, else it Creates one.
            @param file
                       The file to open or to Create.
            @return A newly Created package if the specified file does not exist,
                    else the package extract from the file.
            @throws InvalidFormatException
                        Throws if the specified file exist and is not valid.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.Create(System.String)">
            Creates a new package.
            @param file
                       Path of the document.
            @return A newly Created PackageBase ready to use.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.ConfigurePackage(NPOI.OpenXml4Net.OPC.OPCPackage)">
            Configure the package.
            @param pkg
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.Flush">
            Flush the package : save all.
            @see #close()
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.Close">
            Close the package and save its content.
            @throws IOException
                        If an IO exception occur during the saving process.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.Revert">
            Close the package WITHOUT saving its content. Reinitialize this package
            and cancel all changes done to it.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.AddThumbnail(System.String)">
            <summary>
            Add a thumbnail to the package. This method is provided to make easier
            the addition of a thumbnail in a package. You can do the same work by
            using the traditionnal relationship and part mechanism.
            </summary>
            <param name="path">path The full path to the image file.</param>
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.AddThumbnail(System.String,System.IO.Stream)">
            <summary>
            Add a thumbnail to the package. This method is provided to make easier
            the addition of a thumbnail in a package. You can do the same work by
            using the traditionnal relationship and part mechanism.
            </summary>
            <param name="filename"></param>
            <param name="data"></param>
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.ThrowExceptionIfReadOnly">
            Throws an exception if the package access mode is in read only mode
            (PackageAccess.Read).
            @throws InvalidOperationException
                        Throws if a writing operation is done on a read only package.
            @see org.apache.poi.OpenXml4Net.opc.PackageAccess
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.ThrowExceptionIfWriteOnly">
            Throws an exception if the package access mode is in write only mode
            (PackageAccess.Write). This method is call when other methods need write
            right.
            @throws InvalidOperationException
                        Throws if a read operation is done on a write only package.
            @see org.apache.poi.OpenXml4Net.opc.PackageAccess
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.GetPackageProperties">
            Retrieves or Creates if none exists, core package property part.
            @return The PackageProperties part of this package.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.GetPart(NPOI.OpenXml4Net.OPC.PackagePartName)">
            Retrieve a part identified by its name.
            @param PartName
                       Part name of the part to retrieve.
            @return The part with the specified name, else <code>null</code>.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.GetPartsByContentType(System.String)">
            Retrieve parts by content type.
            @param contentType
                       The content type criteria.
            @return All part associated to the specified content type.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.GetPartsByRelationshipType(System.String)">
            Retrieve parts by relationship type.
            @param relationshipType
                       Relationship type.
            @return All parts which are the target of a relationship with the
                    specified type, if the method can't retrieve relationships from
                    the package, then return <code>null</code>.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.GetPartsByName(System.Text.RegularExpressions.Regex)">
             Retrieve parts by name
             @param namePattern
                        The pattern for matching the names
             @return All parts associated to the specified content type, sorted
             in alphanumerically by the part-name
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.GetPart(NPOI.OpenXml4Net.OPC.PackageRelationship)">
            Get the target part from the specified relationship.
            @param partRel
                       The part relationship uses to retrieve the part.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.GetParts">
            Load the parts of the archive if it has not been done yet. The
            relationships of each part are not loaded.
            Note - Rule M4.1 states that there may only ever be one Core
             Properties Part, but Office produced files will sometimes
             have multiple! As Office ignores all but the first, we relax
             Compliance with Rule M4.1, and ignore all others silently too.
            @return All this package's parts.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.CreatePart(NPOI.OpenXml4Net.OPC.PackagePartName,System.String)">
            Create and Add a part, with the specified name and content type, to the
            package.
            @param PartName
                       Part name.
            @param contentType
                       Part content type.
            @return The newly Created part.
            @throws InvalidFormatException
                        If rule M1.12 is not verified : Packages shall not contain
                        equivalent part names and package implementers shall neither
                        Create nor recognize packages with equivalent part names.
            @see #CreatePartImpl(PackagePartName, String, bool)
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.CreatePart(NPOI.OpenXml4Net.OPC.PackagePartName,System.String,System.Boolean)">
            Create and Add a part, with the specified name and content type, to the
            package. For general purpose, prefer the overload version of this method
            without the 'loadRelationships' parameter.
            @param PartName
                       Part name.
            @param contentType
                       Part content type.
            @param loadRelationships
                       Specify if the existing relationship part, if any, logically
                       associated to the newly Created part will be loaded.
            @return The newly Created part.
            @throws InvalidFormatException
                        If rule M1.12 is not verified : Packages shall not contain
                        equivalent part names and package implementers shall neither
                        Create nor recognize packages with equivalent part names.
            @see {@link#CreatePartImpl(URI, String)}
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.CreatePart(NPOI.OpenXml4Net.OPC.PackagePartName,System.String,System.IO.MemoryStream)">
            Add a part to the package.
            @param PartName
                       Part name of the part to Create.
            @param contentType
                       type associated with the file
            @param content
                       the contents to Add. In order to have faster operation in
                       document merge, the data are stored in memory not on a hard
                       disk
            @return The new part.
            @see #CreatePart(PackagePartName, String)
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.AddPackagePart(NPOI.OpenXml4Net.OPC.PackagePart)">
            Add the specified part to the package. If a part already exists in the
            package with the same name as the one specified, then we replace the old
            part by the specified part.
            @param part
                       The part to Add (or replace).
            @return The part Added to the package, the same as the one specified.
            @throws InvalidFormatException
                        If rule M1.12 is not verified : Packages shall not contain
                        equivalent part names and package implementers shall neither
                        Create nor recognize packages with equivalent part names.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.RemovePart(NPOI.OpenXml4Net.OPC.PackagePart)">
            Remove the specified part in this package. If this part is relationship
            part, then delete all relationships in the source part.
            @param part
                       The part to Remove. If <code>null</code>, skip the action.
            @see #RemovePart(PackagePartName)
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.RemovePart(NPOI.OpenXml4Net.OPC.PackagePartName)">
            Remove a part in this package. If this part is relationship part, then
            delete all relationships in the source part.
            @param PartName
                       The part name of the part to Remove.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.RemovePartRecursive(NPOI.OpenXml4Net.OPC.PackagePartName)">
            Remove a part from this package as well as its relationship part, if one
            exists, and all parts listed in the relationship part. Be aware that this
            do not delete relationships which target the specified part.
            @param PartName
                       The name of the part to delete.
            @throws InvalidFormatException
                        Throws if the associated relationship part of the specified
                        part is not valid.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.DeletePart(NPOI.OpenXml4Net.OPC.PackagePartName)">
            Delete the part with the specified name and its associated relationships
            part if one exists. Prefer the use of this method to delete a part in the
            package, compare to the Remove() methods that don't Remove associated
            relationships part.
            @param PartName
                       Name of the part to delete
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.DeletePartRecursive(NPOI.OpenXml4Net.OPC.PackagePartName)">
            Delete the part with the specified name and all part listed in its
            associated relationships part if one exists. This process is recursively
            apply to all parts in the relationships part of the specified part.
            Prefer the use of this method to delete a part in the package, compare to
            the Remove() methods that don't Remove associated relationships part.
            @param PartName
                       Name of the part to delete
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.ContainPart(NPOI.OpenXml4Net.OPC.PackagePartName)">
            Check if a part already exists in this package from its name.
            @param PartName
                       Part name to check.
            @return <i>true</i> if the part is logically Added to this package, else
                    <i>false</i>.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.AddRelationship(NPOI.OpenXml4Net.OPC.PackagePartName,NPOI.OpenXml4Net.OPC.TargetMode,System.String,System.String)">
            Add a relationship to the package (except relationships part).
            Check rule M4.1 : The format designer shall specify and the format
            producer shall Create at most one core properties relationship for a
            package. A format consumer shall consider more than one core properties
            relationship for a package to be an error. If present, the relationship
            shall target the Core Properties part.
            Check rule M1.25: The Relationships part shall not have relationships to
            any other part. Package implementers shall enforce this requirement upon
            the attempt to Create such a relationship and shall treat any such
            relationship as invalid.
            @param targetPartName
                       Target part name.
            @param targetMode
                       Target mode, either Internal or External.
            @param relationshipType
                       Relationship type.
            @param relID
                       ID of the relationship.
            @see PackageRelationshipTypes
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.AddRelationship(NPOI.OpenXml4Net.OPC.PackagePartName,NPOI.OpenXml4Net.OPC.TargetMode,System.String)">
            Add a package relationship.
            @param targetPartName
                       Target part name.
            @param targetMode
                       Target mode, either Internal or External.
            @param relationshipType
                       Relationship type.
            @see PackageRelationshipTypes
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.AddExternalRelationship(System.String,System.String)">
            Adds an external relationship to a part (except relationships part).
            The targets of external relationships are not subject to the same
            validity checks that internal ones are, as the contents is potentially
            any file, URL or similar.
            @param target
                       External target of the relationship
            @param relationshipType
                       Type of relationship.
            @return The newly Created and Added relationship
            @see org.apache.poi.OpenXml4Net.opc.RelationshipSource#AddExternalRelationship(java.lang.String,
                 java.lang.String)
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.AddExternalRelationship(System.String,System.String,System.String)">
            Adds an external relationship to a part (except relationships part).
            The targets of external relationships are not subject to the same
            validity checks that internal ones are, as the contents is potentially
            any file, URL or similar.
            @param target
                       External target of the relationship
            @param relationshipType
                       Type of relationship.
            @param id
                       Relationship unique id.
            @return The newly Created and Added relationship
            @see org.apache.poi.OpenXml4Net.opc.RelationshipSource#AddExternalRelationship(java.lang.String,
                 java.lang.String)
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.RemoveRelationship(System.String)">
            Delete a relationship from this package.
            @param id
                       Id of the relationship to delete.
        </member>
        <member name="P:NPOI.OpenXml4Net.OPC.OPCPackage.Relationships">
            Retrieves all package relationships.
            @return All package relationships of this package.
            @throws OpenXml4NetException
            @see #GetRelationshipsHelper(String)
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.GetRelationshipsByType(System.String)">
            Retrieves all relationships with the specified type.
            @param relationshipType
                       The filter specifying the relationship type.
            @return All relationships with the specified relationship type.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.GetRelationshipsHelper(System.String)">
            Retrieves all relationships with specified id (normally just ine because
            a relationship id is supposed to be unique).
            @param id
                       Id of the wanted relationship.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.ClearRelationships">
            Clear package relationships.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.EnsureRelationships">
            Ensure that the relationships collection is not null.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.GetRelationship(System.String)">
            @see org.apache.poi.OpenXml4Net.opc.RelationshipSource#GetRelationship(java.lang.String)
        </member>
        <member name="P:NPOI.OpenXml4Net.OPC.OPCPackage.HasRelationships">
            @see org.apache.poi.OpenXml4Net.opc.RelationshipSource#hasRelationships()
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.IsRelationshipExists(NPOI.OpenXml4Net.OPC.PackageRelationship)">
            @see org.apache.poi.OpenXml4Net.opc.RelationshipSource#isRelationshipExists(org.apache.poi.OpenXml4Net.opc.PackageRelationship)
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.AddMarshaller(System.String,NPOI.OpenXml4Net.OPC.Internal.PartMarshaller)">
            Add a marshaller.
            @param contentType
                       The content type to bind to the specified marshaller.
            @param marshaller
                       The marshaller to register with the specified content type.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.AddUnmarshaller(System.String,NPOI.OpenXml4Net.OPC.Internal.PartUnmarshaller)">
            Add an unmarshaller.
            @param contentType
                       The content type to bind to the specified unmarshaller.
            @param unmarshaller
                       The unmarshaller to register with the specified content type.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.RemoveMarshaller(System.String)">
            Remove a marshaller by its content type.
            @param contentType
                       The content type associated with the marshaller to Remove.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.RemoveUnmarshaller(System.String)">
            Remove an unmarshaller by its content type.
            @param contentType
                       The content type associated with the unmarshaller to Remove.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.GetPackageAccess">
            Get the package access mode.
            @return the packageAccess The current package access.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.ValidatePackage(NPOI.OpenXml4Net.OPC.OPCPackage)">
            Validates the package compliance with the OPC specifications.
            @return <b>true</b> if the package is valid else <b>false</b>
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.Save(System.String)">
            Save the document in the specified file.
            @param targetFile
                       Destination file.
            @throws IOException
                        Throws if an IO exception occur.
            @see #save(OutputStream)
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.Save(System.IO.Stream)">
            Save the document in the specified output stream.
            @param outputStream
                       The stream to save the package.
            @see #saveImpl(OutputStream)
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.CreatePartImpl(NPOI.OpenXml4Net.OPC.PackagePartName,System.String,System.Boolean)">
            Core method to Create a package part. This method must be implemented by
            the subclass.
            @param PartName
                       URI of the part to Create.
            @param contentType
                       Content type of the part to Create.
            @return The newly Created package part.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.RemovePartImpl(NPOI.OpenXml4Net.OPC.PackagePartName)">
            Core method to delete a package part. This method must be implemented by
            the subclass.
            @param PartName
                       The URI of the part to delete.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.FlushImpl">
            Flush the package but not save.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.CloseImpl">
            Close the package and cause a save of the package.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.RevertImpl">
            Close the package without saving the document. Discard all changes made
            to this package.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.SaveImpl(System.IO.Stream)">
            Save the package into the specified output stream.
            @param outputStream
                       The output stream use to save this package.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.GetPartImpl(NPOI.OpenXml4Net.OPC.PackagePartName)">
            Get the package part mapped to the specified URI.
            @param PartName
                       The URI of the part to retrieve.
            @return The package part located by the specified URI, else <b>null</b>.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.GetPartsImpl">
            Get all parts link to the package.
            @return A list of the part owned by the package.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.ReplaceContentType(System.String,System.String)">
             Replace a content type in this package.
             <p>
                 A typical scneario to call this method is to rename a template file to the main format, e.g.
                 ".dotx" to ".docx"
                 ".dotm" to ".docm"
                 ".xltx" to ".xlsx"
                 ".xltm" to ".xlsm"
                 ".potx" to ".pptx"
                 ".potm" to ".pptm"
             </p>
             For example, a code converting  a .xlsm macro workbook to .xlsx would look as follows:
             <p>
                <pre><code>
                 OPCPackage pkg = OPCPackage.open(new FileInputStream("macro-workbook.xlsm"));
                 pkg.replaceContentType(
                     "application/vnd.ms-excel.sheet.macroEnabled.main+xml",
                     "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml");
                 FileOutputStream out = new FileOutputStream("workbook.xlsx");
                 pkg.save(out);
                 out.close();
                </code></pre>
             </p>
             @param oldContentType  the content type to be replaced
             @param newContentType  the replacement
             @return whether replacement was succesfull
             @since POI-3.8
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.RegisterPartAndContentType(NPOI.OpenXml4Net.OPC.PackagePart)">
             Add the specified part, and register its content type with the content
             type manager.
             @param part
                        The part to add.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.UnregisterPartAndContentType(NPOI.OpenXml4Net.OPC.PackagePartName)">
             Remove the specified part, and clear its content type from the content
             type manager.
             @param partName
                        The part name of the part to remove.
        </member>
        <member name="T:NPOI.OpenXml4Net.OPC.PackageAccess">
             Specifies package access.
             @author Julien Chable
             @version 1.0
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackageAccess.READ">
            Read only. Write not authorized.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackageAccess.WRITE">
            Write only. Read not authorized.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackageAccess.READ_WRITE">
            Read and Write mode.
        </member>
        <member name="T:NPOI.OpenXml4Net.OPC.PackageNamespaces">
             Open Packaging Convention namespaces URI.
             @author Julien Chable
             @version 1.0
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackageNamespaces.NAMESPACE_DCTERMS">
            Dublin Core Terms URI.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackageNamespaces.NAMESPACE_DC">
            Dublin Core namespace URI.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackageNamespaces.CONTENT_TYPES">
            Content Types.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackageNamespaces.CORE_PROPERTIES">
            Core Properties.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackageNamespaces.DIGITAL_SIGNATURE">
            Digital Signatures.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackageNamespaces.RELATIONSHIPS">
            Relationships.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackageNamespaces.MARKUP_COMPATIBILITY">
            Markup Compatibility.
        </member>
        <member name="T:NPOI.OpenXml4Net.OPC.PackagePart">
            Provides a base class for parts stored in a Package.
            @author Julien Chable
            @version 0.9
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackagePart._container">
            This part's container.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackagePart._partName">
            The part name. (required by the specification [M1.1])
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackagePart._contentType">
            The type of content of this part. (required by the specification [M1.2])
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackagePart._isRelationshipPart">
            Flag to know if this part is a relationship.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackagePart._isDeleted">
            Flag to know if this part has been logically deleted.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackagePart._relationships">
            This part's relationships.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagePart.#ctor(NPOI.OpenXml4Net.OPC.OPCPackage,NPOI.OpenXml4Net.OPC.PackagePartName,NPOI.OpenXml4Net.OPC.Internal.ContentType)">
            Constructor.
            @param pack
                       Parent package.
            @param partName
                       The part name, relative to the parent Package root.
            @param contentType
                       The content type.
            @throws InvalidFormatException
                        If the specified URI is not valid.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagePart.#ctor(NPOI.OpenXml4Net.OPC.OPCPackage,NPOI.OpenXml4Net.OPC.PackagePartName,NPOI.OpenXml4Net.OPC.Internal.ContentType,System.Boolean)">
            Constructor.
            @param pack
                       Parent package.
            @param partName
                       The part name, relative to the parent Package root.
            @param contentType
                       The content type.
            @param loadRelationships
                       Specify if the relationships will be loaded
            @throws InvalidFormatException
                        If the specified URI is not valid.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagePart.#ctor(NPOI.OpenXml4Net.OPC.OPCPackage,NPOI.OpenXml4Net.OPC.PackagePartName,System.String)">
            Constructor.
            @param pack
                       Parent package.
            @param partName
                       The part name, relative to the parent Package root.
            @param contentType
                       The Multipurpose Internet Mail Extensions (MIME) content type
                       of the part's data stream.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagePart.FindExistingRelation(NPOI.OpenXml4Net.OPC.PackagePart)">
            <summary>
            Check if the new part was already added before via PackagePart.addRelationship()
            </summary>
            <param name="packagePart">to find the relationship for</param>
            <returns>The existing relationship, or null if there isn't yet one</returns>
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagePart.AddExternalRelationship(System.String,System.String)">
            Adds an external relationship to a part (except relationships part).
            The targets of external relationships are not subject to the same
            validity checks that internal ones are, as the contents is potentially
            any file, URL or similar.
            @param target
                       External target of the relationship
            @param relationshipType
                       Type of relationship.
            @return The newly created and added relationship
            @see org.apache.poi.OpenXml4Net.opc.RelationshipSource#addExternalRelationship(java.lang.String,
                 java.lang.String)
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagePart.AddExternalRelationship(System.String,System.String,System.String)">
            Adds an external relationship to a part (except relationships part).
            The targets of external relationships are not subject to the same
            validity checks that internal ones are, as the contents is potentially
            any file, URL or similar.
            @param target
                       External target of the relationship
            @param relationshipType
                       Type of relationship.
            @param id
                       Relationship unique id.
            @return The newly created and added relationship
            @see org.apache.poi.OpenXml4Net.opc.RelationshipSource#addExternalRelationship(java.lang.String,
                 java.lang.String)
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagePart.AddRelationship(NPOI.OpenXml4Net.OPC.PackagePartName,NPOI.OpenXml4Net.OPC.TargetMode,System.String)">
            Add a relationship to a part (except relationships part).
            @param targetPartName
                       Name of the target part. This one must be relative to the
                       source root directory of the part.
            @param targetMode
                       Mode [Internal|External].
            @param relationshipType
                       Type of relationship.
            @return The newly created and added relationship
            @see org.apache.poi.OpenXml4Net.opc.RelationshipSource#AddRelationship(org.apache.poi.OpenXml4Net.opc.PackagePartName,
                 org.apache.poi.OpenXml4Net.opc.TargetMode, java.lang.String)
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagePart.AddRelationship(NPOI.OpenXml4Net.OPC.PackagePartName,NPOI.OpenXml4Net.OPC.TargetMode,System.String,System.String)">
            Add a relationship to a part (except relationships part).
            <p>
            Check rule M1.25: The Relationships part shall not have relationships to
            any other part. Package implementers shall enforce this requirement upon
            the attempt to create such a relationship and shall treat any such
            relationship as invalid.
            </p>
            @param targetPartName
                       Name of the target part. This one must be relative to the
                       source root directory of the part.
            @param targetMode
                       Mode [Internal|External].
            @param relationshipType
                       Type of relationship.
            @param id
                       Relationship unique id.
            @return The newly created and added relationship
            @throws InvalidFormatException
                        If the URI point to a relationship part URI.
            @see org.apache.poi.OpenXml4Net.opc.RelationshipSource#AddRelationship(org.apache.poi.OpenXml4Net.opc.PackagePartName,
                 org.apache.poi.OpenXml4Net.opc.TargetMode, java.lang.String, java.lang.String)
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagePart.AddRelationship(System.Uri,NPOI.OpenXml4Net.OPC.TargetMode,System.String)">
            Add a relationship to a part (except relationships part).
            @param targetURI
                       URI the target part. Must be relative to the source root
                       directory of the part.
            @param targetMode
                       Mode [Internal|External].
            @param relationshipType
                       Type of relationship.
            @return The newly created and added relationship
            @see org.apache.poi.OpenXml4Net.opc.RelationshipSource#AddRelationship(org.apache.poi.OpenXml4Net.opc.PackagePartName,
                 org.apache.poi.OpenXml4Net.opc.TargetMode, java.lang.String)
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagePart.AddRelationship(System.Uri,NPOI.OpenXml4Net.OPC.TargetMode,System.String,System.String)">
            Add a relationship to a part (except relationships part).
            <p>
            Check rule M1.25: The Relationships part shall not have relationships to
            any other part. Package implementers shall enforce this requirement upon
            the attempt to create such a relationship and shall treat any such
            relationship as invalid.
            </p>
            @param targetURI
                       URI of the target part. Must be relative to the source root
                       directory of the part.
            @param targetMode
                       Mode [Internal|External].
            @param relationshipType
                       Type of relationship.
            @param id
                       Relationship unique id.
            @return The newly created and added relationship
            @throws InvalidFormatException
                        If the URI point to a relationship part URI.
            @see org.apache.poi.OpenXml4Net.opc.RelationshipSource#AddRelationship(org.apache.poi.OpenXml4Net.opc.PackagePartName,
                 org.apache.poi.OpenXml4Net.opc.TargetMode, java.lang.String, java.lang.String)
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagePart.ClearRelationships">
            @see org.apache.poi.OpenXml4Net.opc.RelationshipSource#clearRelationships()
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagePart.RemoveRelationship(System.String)">
            Delete the relationship specified by its id.
            @param id
                       The ID identified the part to delete.
            @see org.apache.poi.OpenXml4Net.opc.RelationshipSource#removeRelationship(java.lang.String)
        </member>
        <member name="P:NPOI.OpenXml4Net.OPC.PackagePart.Relationships">
            Retrieve all the relationships attached to this part.
            @return This part's relationships.
            @throws OpenXml4NetException
            @see org.apache.poi.OpenXml4Net.opc.RelationshipSource#getRelationships()
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagePart.GetRelationship(System.String)">
            Retrieves a package relationship from its id.
            @param id
                       ID of the package relationship to retrieve.
            @return The package relationship
            @see org.apache.poi.OpenXml4Net.opc.RelationshipSource#getRelationship(java.lang.String)
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagePart.GetRelationshipsByType(System.String)">
            Retrieve all relationships attached to this part which have the specified
            type.
            @param relationshipType
                       Relationship type filter.
            @return All relationships from this part that have the specified type.
            @throws InvalidFormatException
                        If an error occurs while parsing the part.
            @throws InvalidOperationException
                        If the package is open in write only mode.
            @see org.apache.poi.OpenXml4Net.opc.RelationshipSource#getRelationshipsByType(java.lang.String)
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagePart.GetRelationshipsCore(System.String)">
            Implementation of the getRelationships method().
            @param filter
                       Relationship type filter. If <i>null</i> then the filter is
                       disabled and return all the relationships.
            @return All relationships from this part that have the specified type.
            @throws InvalidFormatException
                        Throws if an error occurs during parsing the relationships
                        part.
            @throws InvalidOperationException
                        Throws if the package is open en write only mode.
            @see #getRelationshipsByType(String)
        </member>
        <member name="P:NPOI.OpenXml4Net.OPC.PackagePart.HasRelationships">
            Knows if the part have any relationships.
            @return <b>true</b> if the part have at least one relationship else
                    <b>false</b>.
            @see org.apache.poi.OpenXml4Net.opc.RelationshipSource#hasRelationships()
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagePart.IsRelationshipExists(NPOI.OpenXml4Net.OPC.PackageRelationship)">
            Checks if the specified relationship is part of this package part.
            @param rel
                       The relationship to check.
            @return <b>true</b> if the specified relationship exists in this part,
                    else returns <b>false</b>
            @see org.apache.poi.OpenXml4Net.opc.RelationshipSource#isRelationshipExists(org.apache.poi.OpenXml4Net.opc.PackageRelationship)
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagePart.GetRelatedPart(NPOI.OpenXml4Net.OPC.PackageRelationship)">
             Get the PackagePart that is the target of a relationship.
             @param rel A relationship from this part to another one
             @return The target part of the relationship
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagePart.GetInputStream">
            Get the input stream of this part to read its content.
            @return The input stream of the content of this part, else
                    <code>null</code>.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagePart.GetOutputStream">
             Get the output stream of this part. If the part is originally embedded in
             Zip package, it'll be transform intot a <i>MemoryPackagePart</i> in
             order to write inside (the standard Java API doesn't allow to write in
             the file)
             @see org.apache.poi.openxml4j.opc.internal.MemoryPackagePart
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagePart.ThrowExceptionIfRelationship">
            Throws an exception if this package part is a relationship part.
            @throws InvalidOperationException
                        If this part is a relationship part.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagePart.LoadRelationships">
            Ensure the package relationships collection instance is built.
            @throws InvalidFormatException
                        Throws if
        </member>
        <member name="P:NPOI.OpenXml4Net.OPC.PackagePart.PartName">
            @return the uri
        </member>
        <member name="P:NPOI.OpenXml4Net.OPC.PackagePart.ContentType">
            @return the contentType
        </member>
        <member name="P:NPOI.OpenXml4Net.OPC.PackagePart.ContentTypeDetails">
            @return The Content Type, including parameters, of the part
        </member>
        <member name="P:NPOI.OpenXml4Net.OPC.PackagePart.IsRelationshipPart">
            @return true if this part is a relationship
        </member>
        <member name="P:NPOI.OpenXml4Net.OPC.PackagePart.IsDeleted">
            @return true if this part has been logically deleted
        </member>
        <member name="P:NPOI.OpenXml4Net.OPC.PackagePart.Size">
            @return The length of the part in bytes, or -1 if not known
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagePart.CompareTo(NPOI.OpenXml4Net.OPC.PackagePart)">
            Compare based on the package part name, using a natural sort order
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagePart.GetInputStreamImpl">
            Abtract method that get the input stream of this part.
            @exception IOException
                           Throws if an IO Exception occur in the implementation
                           method.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagePart.GetOutputStreamImpl">
            Abstract method that get the output stream of this part.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagePart.Save(System.IO.Stream)">
            Save the content of this part and the associated relationships part (if
            this part own at least one relationship) into the specified output
            stream.
            @param zos
                       Output stream to save this part.
            @throws OpenXml4NetException
                        If any exception occur.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagePart.Load(System.IO.Stream)">
            Load the content of this part.
            @param ios
                       The input stream of the content to load.
            @return <b>true</b> if the content has been successfully loaded, else
                    <b>false</b>.
            @throws InvalidFormatException
                        Throws if the content format is invalid.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagePart.Close">
            Close this part : flush this part, close the input stream and output
            stream. After this method call, the part must be available for packaging.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagePart.Flush">
            Flush the content of this part. If the input stream and/or output stream
            as in a waiting state to read or write, the must to empty their
            respective buffer.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagePart.Clear">
            Allows sub-classes to clean up before new data is added.
        </member>
        <member name="T:NPOI.OpenXml4Net.OPC.PackagePartCollection">
             A package part collection.
             @author Julien Chable
             @version 0.1
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackagePartCollection.registerPartNameStr">
            Arraylist use to store this collection part names as string for rule
            M1.11 optimized checking.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagePartCollection.Put(NPOI.OpenXml4Net.OPC.PackagePartName,NPOI.OpenXml4Net.OPC.PackagePart)">
             Check rule [M1.11]: a package implementer shall neither create nor
             recognize a part with a part name derived from another part name by
             Appending segments to it.
             @exception InvalidOperationException
                            Throws if you try to add a part with a name derived from
                            another part name.
        </member>
        <member name="T:NPOI.OpenXml4Net.OPC.PackagePartName">
             An immutable Open Packaging Convention compliant part name.
             @author Julien Chable
             @see <a href="http://www.ietf.org/rfc/rfc3986.txt">http://www.ietf.org/rfc/rfc3986.txt</a>
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackagePartName.partNameURI">
            Part name stored as an URI.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackagePartName.RFC3986_PCHAR_SUB_DELIMS">
            Reserved characters for sub delimitations.
        </member>
        <!-- Badly formed XML comment ignored for member "F:NPOI.OpenXml4Net.OPC.PackagePartName.RFC3986_PCHAR_UNRESERVED_SUP" -->
        <member name="F:NPOI.OpenXml4Net.OPC.PackagePartName.RFC3986_PCHAR_AUTHORIZED_SUP">
            Authorized reserved characters for pChar.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackagePartName.isRelationship">
            Flag to know if this part name is from a relationship part name.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagePartName.#ctor(System.Uri,System.Boolean)">
             Constructor. Makes a ValidPartName object from a java.net.URI
             @param uri
                        The URI to validate and to transform into ValidPartName.
             @param checkConformance
                        Flag to specify if the contructor have to validate the OPC
                        conformance. Must be always <code>true</code> except for
                        special URI like '/' which is needed for internal use by
                        OpenXml4Net but is not valid.
             @throws InvalidFormatException
                         Throw if the specified part name is not conform to Open
                         Packaging Convention specifications.
             @see java.net.URI
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagePartName.#ctor(System.String,System.Boolean)">
             Constructor. Makes a ValidPartName object from a String part name.
             @param partName
                        Part name to valid and to create.
             @param checkConformance
                        Flag to specify if the contructor have to validate the OPC
                        conformance. Must be always <code>true</code> except for
                        special URI like '/' which is needed for internal use by
                        OpenXml4Net but is not valid.
             @throws InvalidFormatException
                         Throw if the specified part name is not conform to Open
                         Packaging Convention specifications.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagePartName.IsRelationshipPartURI(System.Uri)">
             Check if the specified part name is a relationship part name.
             @param partUri
                        The URI to check.
             @return <code>true</code> if this part name respect the relationship
                     part naming convention else <code>false</code>.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagePartName.IsRelationshipPartURI">
             Know if this part name is a relationship part name.
             @return <code>true</code> if this part name respect the relationship
                     part naming convention else <code>false</code>.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagePartName.ThrowExceptionIfInvalidPartUri(System.Uri)">
             Throws an exception (of any kind) if the specified part name does not
             follow the Open Packaging Convention specifications naming rules.
             @param partUri
                        The part name to check.
             @throws Exception
                         Throws if the part name is invalid.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagePartName.ThrowExceptionIfEmptyURI(System.Uri)">
             Throws an exception if the specified URI is empty. [M1.1]
             @param partURI
                        Part URI to check.
             @throws InvalidFormatException
                         If the specified URI is empty.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagePartName.ThrowExceptionIfPartNameHaveInvalidSegments(System.Uri)">
             Throws an exception if the part name has empty segments. [M1.3]
             Throws an exception if a segment any characters other than pchar
             characters. [M1.6]
             Throws an exception if a segment contain percent-encoded forward slash
             ('/'), or backward slash ('\') characters. [M1.7]
             Throws an exception if a segment contain percent-encoded unreserved
             characters. [M1.8]
             Throws an exception if the specified part name's segments end with a dot
             ('.') character. [M1.9]
             Throws an exception if a segment doesn't include at least one non-dot
             character. [M1.10]
             @param partUri
                        The part name to check.
             @throws InvalidFormatException
                         if the specified URI contain an empty segments or if one the
                         segments contained in the part name, ends with a dot ('.')
                         character.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagePartName.CheckPCharCompliance(System.String)">
             Throws an exception if a segment any characters other than pchar
             characters. [M1.6]
             Throws an exception if a segment contain percent-encoded forward slash
             ('/'), or backward slash ('\') characters. [M1.7]
             Throws an exception if a segment contain percent-encoded unreserved
             characters. [M1.8]
             @param segment
                        The segment to check
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagePartName.ThrowExceptionIfPartNameNotStartsWithForwardSlashChar(System.Uri)">
             Throws an exception if the specified part name doesn't start with a
             forward slash character '/'. [M1.4]
             @param partUri
                        The part name to check.
             @throws InvalidFormatException
                         If the specified part name doesn't start with a forward slash
                         character '/'.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagePartName.ThrowExceptionIfPartNameEndsWithForwardSlashChar(System.Uri)">
             Throws an exception if the specified part name ends with a forwar slash
             character '/'. [M1.5]
             @param partUri
                        The part name to check.
             @throws InvalidFormatException
                         If the specified part name ends with a forwar slash character
                         '/'.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagePartName.ThrowExceptionIfAbsoluteUri(System.Uri)">
             Throws an exception if the specified URI is absolute.
             @param partUri
                        The URI to check.
             @throws InvalidFormatException
                         Throws if the specified URI is absolute.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagePartName.CompareTo(NPOI.OpenXml4Net.OPC.PackagePartName)">
             Compare two part name following the rule M1.12 :
             Part name equivalence is determined by comparing part names as
             case-insensitive ASCII strings. Packages shall not contain equivalent
             part names and package implementers shall neither create nor recognize
             packages with equivalent part names. [M1.12]
        </member>
        <member name="P:NPOI.OpenXml4Net.OPC.PackagePartName.Extension">
             Retrieves the extension of the part name if any. If there is no extension
             returns an empty String. Example : '/document/content.xml' => 'xml'
             @return The extension of the part name.
        </member>
        <member name="P:NPOI.OpenXml4Net.OPC.PackagePartName.Name">
             Get this part name.
             @return The name of this part name.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagePartName.Equals(System.Object)">
            Part name equivalence is determined by comparing part names as
            case-insensitive ASCII strings. Packages shall not contain equivalent
            part names and package implementers shall neither create nor recognize
            packages with equivalent part names. [M1.12]
        </member>
        <member name="P:NPOI.OpenXml4Net.OPC.PackagePartName.URI">
             Part name property getter.
             @return This part name URI.
        </member>
        <!-- Badly formed XML comment ignored for member "M:NPOI.OpenXml4Net.OPC.PackagePartName.Compare(NPOI.OpenXml4Net.OPC.PackagePartName,NPOI.OpenXml4Net.OPC.PackagePartName)" -->
        <!-- Badly formed XML comment ignored for member "M:NPOI.OpenXml4Net.OPC.PackagePartName.Compare(System.String,System.String)" -->
        <member name="T:NPOI.OpenXml4Net.OPC.PackageProperties">
            Represents the core properties of an OPC package.
            @author Julien Chable
            @version 1.0
            @see org.apache.poi.OpenXml4Net.opc.OPCPackage
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageProperties.GetCategoryProperty">
            Set the category of the content of this package.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageProperties.SetCategoryProperty(System.String)">
            Set the category of the content of this package.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageProperties.GetContentStatusProperty">
            Set the status of the content.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageProperties.SetContentStatusProperty(System.String)">
            Get the status of the content.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageProperties.GetContentTypeProperty">
            Get the type of content represented, generally defined by a specific use
            and intended audience.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageProperties.SetContentTypeProperty(System.String)">
            Set the type of content represented, generally defined by a specific use
            and intended audience.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageProperties.GetCreatedProperty">
            Get the date of creation of the resource.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageProperties.SetCreatedProperty(System.String)">
            Set the date of creation of the resource.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageProperties.SetCreatedProperty(System.Nullable{System.DateTime})">
            Set the date of creation of the resource.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageProperties.GetCreatorProperty">
            Get the entity primarily responsible for making the content of the
            resource.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageProperties.SetCreatorProperty(System.String)">
            Set the entity primarily responsible for making the content of the
            resource.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageProperties.GetDescriptionProperty">
            Get the explanation of the content of the resource.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageProperties.SetDescriptionProperty(System.String)">
            Set the explanation of the content of the resource.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageProperties.GetIdentifierProperty">
            Get an unambiguous reference to the resource within a given context.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageProperties.SetIdentifierProperty(System.String)">
            Set an unambiguous reference to the resource within a given context.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageProperties.GetKeywordsProperty">
            Get a delimited Set of keywords to support searching and indexing. This
            is typically a list of terms that are not available elsewhere in the
            properties
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageProperties.SetKeywordsProperty(System.String)">
            Set a delimited Set of keywords to support searching and indexing. This
            is typically a list of terms that are not available elsewhere in the
            properties
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageProperties.GetLanguageProperty">
            Get the language of the intellectual content of the resource.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageProperties.SetLanguageProperty(System.String)">
            Set the language of the intellectual content of the resource.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageProperties.GetLastModifiedByProperty">
            Get the user who performed the last modification.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageProperties.SetLastModifiedByProperty(System.String)">
            Set the user who performed the last modification.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageProperties.GetLastPrintedProperty">
            Get the date and time of the last printing.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageProperties.SetLastPrintedProperty(System.String)">
            Set the date and time of the last printing.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageProperties.SetLastPrintedProperty(System.Nullable{System.DateTime})">
            Set the date and time of the last printing.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageProperties.GetModifiedProperty">
            Get the date on which the resource was changed.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageProperties.SetModifiedProperty(System.String)">
            Set the date on which the resource was changed.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageProperties.SetModifiedProperty(System.Nullable{System.DateTime})">
            Set the date on which the resource was changed.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageProperties.GetRevisionProperty">
            Get the revision number.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageProperties.SetRevisionProperty(System.String)">
            Set the revision number.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageProperties.GetSubjectProperty">
            Get the topic of the content of the resource.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageProperties.SetSubjectProperty(System.String)">
            Set the topic of the content of the resource.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageProperties.GetTitleProperty">
            Get the name given to the resource.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageProperties.SetTitleProperty(System.String)">
            Set the name given to the resource.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageProperties.GetVersionProperty">
            Get the version number.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageProperties.SetVersionProperty(System.String)">
            Set the version number.
        </member>
        <member name="T:NPOI.OpenXml4Net.OPC.PackageRelationship">
            A part relationship.
            @author Julien Chable
            @version 1.0
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackageRelationship.id">
            Relation id.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackageRelationship.container">
            Reference to the package.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackageRelationship.relationshipType">
            Relationship type
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackageRelationship.source">
            Part of this relationship source
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackageRelationship.targetMode">
            Targeting mode [Internal|External]
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackageRelationship.targetUri">
            Target URI
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageRelationship.#ctor(NPOI.OpenXml4Net.OPC.OPCPackage,NPOI.OpenXml4Net.OPC.PackagePart,System.Uri,NPOI.OpenXml4Net.OPC.TargetMode,System.String,System.String)">
            Constructor.
            @param pkg
            @param sourcePart
            @param targetUri
            @param targetMode
            @param relationshipType
            @param id
        </member>
        <member name="P:NPOI.OpenXml4Net.OPC.PackageRelationship.Package">
            @return the container
        </member>
        <member name="P:NPOI.OpenXml4Net.OPC.PackageRelationship.Id">
            @return the id
        </member>
        <member name="P:NPOI.OpenXml4Net.OPC.PackageRelationship.RelationshipType">
            @return the relationshipType
        </member>
        <member name="P:NPOI.OpenXml4Net.OPC.PackageRelationship.Source">
            @return the source
        </member>
        <member name="P:NPOI.OpenXml4Net.OPC.PackageRelationship.SourceUri">
            @return URL of the source part of this relationship
        </member>
        <member name="P:NPOI.OpenXml4Net.OPC.PackageRelationship.TargetMode">
            public URI getSourceUri(){ }
            @return the targetMode
        </member>
        <member name="P:NPOI.OpenXml4Net.OPC.PackageRelationship.TargetUri">
            @return the targetUri
        </member>
        <member name="T:NPOI.OpenXml4Net.OPC.PackageRelationshipCollection">
            Represents a collection of PackageRelationship elements that are owned by a
            given PackagePart or the Package.
            @author Julien Chable, CDubettier
            @version 0.1
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackageRelationshipCollection.relationshipsByID">
            Package relationships ordered by ID.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackageRelationshipCollection.relationshipsByType">
            Package relationships ordered by type.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackageRelationshipCollection.internalRelationshipsByTargetName">
            A lookup of internal relationships to avoid
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackageRelationshipCollection.relationshipPart">
            This relationshipPart.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackageRelationshipCollection.sourcePart">
            Source part.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackageRelationshipCollection.partName">
            This part name.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackageRelationshipCollection.container">
            Reference to the package.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackageRelationshipCollection.nextRelationshipId">
            The ID number of the next rID# to generate, or -1
             if that is still to be determined.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageRelationshipCollection.#ctor">
            Constructor.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageRelationshipCollection.#ctor(NPOI.OpenXml4Net.OPC.PackageRelationshipCollection,System.String)">
            Copy constructor.
            This collection will contain only elements from the specified collection
            for which the type is compatible with the specified relationship type
            filter.
            @param coll
                       Collection to import.
            @param filter
                       Relationship type filter.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageRelationshipCollection.#ctor(NPOI.OpenXml4Net.OPC.OPCPackage)">
            Constructor.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageRelationshipCollection.#ctor(NPOI.OpenXml4Net.OPC.PackagePart)">
            Constructor.
            @throws InvalidFormatException
                        Throws if the format of the content part is invalid.
            @throws InvalidOperationException
                        Throws if the specified part is a relationship part.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageRelationshipCollection.#ctor(NPOI.OpenXml4Net.OPC.OPCPackage,NPOI.OpenXml4Net.OPC.PackagePart)">
            Constructor. Parse the existing package relationship part if one exists.
            @param container
                       The parent package.
            @param part
                       The part that own this relationships collection. If <b>null</b>
                       then this part is considered as the package root.
            @throws InvalidFormatException
                        If an error occurs during the parsing of the relatinships
                        part fo the specified part.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageRelationshipCollection.GetRelationshipPartName(NPOI.OpenXml4Net.OPC.PackagePart)">
            Get the relationship part name of the specified part.
            @param part
                       The part .
            @return The relationship part name of the specified part. Be careful,
                    only the correct name is returned, this method does not check if
                    the part really exist in a package !
            @throws InvalidOperationException
                        Throws if the specified part is a relationship part.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageRelationshipCollection.AddRelationship(NPOI.OpenXml4Net.OPC.PackageRelationship)">
            Add the specified relationship to the collection.
            @param relPart
                       The relationship to add.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageRelationshipCollection.AddRelationship(System.Uri,NPOI.OpenXml4Net.OPC.TargetMode,System.String,System.String)">
            Add a relationship to the collection.
            @param targetUri
                       Target URI.
            @param targetMode
                       The target mode : INTERNAL or EXTERNAL
            @param relationshipType
                       Relationship type.
            @param id
                       Relationship ID.
            @return The newly created relationship.
            @see PackageAccess
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageRelationshipCollection.RemoveRelationship(System.String)">
            Remove a relationship by its ID.
            @param id
                       The relationship ID to Remove.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageRelationshipCollection.RemoveRelationship(NPOI.OpenXml4Net.OPC.PackageRelationship)">
            Remove a relationship by its reference.
            @param rel
                       The relationship to delete.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageRelationshipCollection.GetRelationship(System.Int32)">
            Retrieves a relationship by its index in the collection.
            @param index
                       Must be a value between [0-relationships_count-1]
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageRelationshipCollection.GetRelationshipByID(System.String)">
            Retrieves a package relationship based on its id.
            @param id
                       ID of the package relationship to retrieve.
            @return The package relationship identified by the specified id.
        </member>
        <member name="P:NPOI.OpenXml4Net.OPC.PackageRelationshipCollection.Size">
            Get the numbe rof relationships in the collection.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageRelationshipCollection.ParseRelationshipsPart(NPOI.OpenXml4Net.OPC.PackagePart)">
            Parse the relationship part and add all relationship in this collection.
            @param relPart
                       The package part to parse.
            @throws InvalidFormatException
                        Throws if the relationship part is invalid.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageRelationshipCollection.GetRelationships(System.String)">
            Retrieves all relations with the specified type.
            @param typeFilter
                       Relationship type filter. If <b>null</b> then all
                       relationships are returned.
            @return All relationships of the type specified by the filter.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageRelationshipCollection.GetEnumerator">
            Get this collection's iterator.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageRelationshipCollection.Iterator(System.String)">
            Get an iterator of a collection with all relationship with the specified
            type.
            @param typeFilter
                       Type filter.
            @return An iterator to a collection containing all relationships with the
                    specified type contain in this collection.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageRelationshipCollection.Clear">
            Clear all relationships.
        </member>
        <member name="T:NPOI.OpenXml4Net.OPC.PackageRelationshipTypes">
             Relationship types.
             @author Julien Chable
             @version 0.2
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackageRelationshipTypes.CORE_PROPERTIES">
             Core properties relationship type.
              <p>
              The standard specifies a source relations ship for the Core File Properties part as follows:
              <code>http://schemas.openxmlformats.org/officedocument/2006/relationships/metadata/core-properties.</code>
              </p>
              <p>
               Office uses the following source relationship for the Core File Properties part:
               <code>http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties.</code>
             </p>
             See 2.1.33 Part 1 Section 15.2.11.1, Core File Properties Part in [MS-OE376].pdf
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackageRelationshipTypes.CORE_PROPERTIES_ECMA376">
            Core properties relationship type as defiend in ECMA 376.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackageRelationshipTypes.DIGITAL_SIGNATURE">
            Digital signature relationship type.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackageRelationshipTypes.DIGITAL_SIGNATURE_CERTIFICATE">
            Digital signature certificate relationship type.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackageRelationshipTypes.DIGITAL_SIGNATURE_ORIGIN">
            Digital signature origin relationship type.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackageRelationshipTypes.THUMBNAIL">
            Thumbnail relationship type.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackageRelationshipTypes.EXTENDED_PROPERTIES">
            Extended properties relationship type.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackageRelationshipTypes.STRICT_EXTENDED_PROPERTIES">
            Extended properties relationship type for strict ooxml.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackageRelationshipTypes.CUSTOM_PROPERTIES">
            Custom properties relationship type.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackageRelationshipTypes.CORE_DOCUMENT">
            Core document relationship type.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackageRelationshipTypes.STRICT_CORE_DOCUMENT">
            Core document relationship type for strict ooxml.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackageRelationshipTypes.CUSTOM_XML">
            Custom XML relationship type.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackageRelationshipTypes.IMAGE_PART">
            Image type.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackageRelationshipTypes.HYPERLINK_PART">
            Hyperlink type.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackageRelationshipTypes.STYLE_PART">
            Style type.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackageRelationshipTypes.EXTERNAL_LINK_PATH">
            External Link to another Document
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackageRelationshipTypes.VISIO_CORE_DOCUMENT">
            Visio 2010 VSDX equivalent of package {@link #CORE_DOCUMENT}
        </member>
        <member name="T:NPOI.OpenXml4Net.OPC.PackagingUriHelper">
             Helper for part and pack Uri.
             @author Julien Chable, CDubet, Kim Ung
             @version 0.1
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackagingUriHelper.packageRootUri">
            Package root Uri.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackagingUriHelper.RELATIONSHIP_PART_EXTENSION_NAME">
            Extension name of a relationship part.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackagingUriHelper.RELATIONSHIP_PART_SEGMENT_NAME">
            Segment name of a relationship part.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackagingUriHelper.PACKAGE_PROPERTIES_SEGMENT_NAME">
            Segment name of the package properties folder.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackagingUriHelper.PACKAGE_CORE_PROPERTIES_NAME">
            Core package properties art name.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackagingUriHelper.FORWARD_SLASH_CHAR">
            Forward slash Uri separator.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackagingUriHelper.FORWARD_SLASH_STRING">
            Forward slash Uri separator.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackagingUriHelper.PACKAGE_RELATIONSHIPS_ROOT_URI">
            Package relationships part Uri
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackagingUriHelper.PACKAGE_RELATIONSHIPS_ROOT_PART_NAME">
            Package relationships part name.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackagingUriHelper.CORE_PROPERTIES_URI">
            Core properties part Uri.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackagingUriHelper.CORE_PROPERTIES_PART_NAME">
            Core properties partname.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackagingUriHelper.PACKAGE_ROOT_URI">
            Root package Uri.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackagingUriHelper.PACKAGE_ROOT_PART_NAME">
            Root package part name.
        </member>
        <member name="P:NPOI.OpenXml4Net.OPC.PackagingUriHelper.PackageRootUri">
             Gets the Uri for the package root.
             @return Uri of the package root.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagingUriHelper.IsRelationshipPartURI(System.Uri)">
             Know if the specified Uri is a relationship part name.
             @param partUri
                        Uri to check.
             @return <i>true</i> if the Uri <i>false</i>.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagingUriHelper.GetFilename(System.Uri)">
            Get file name from the specified Uri.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagingUriHelper.GetFilenameWithoutExtension(System.Uri)">
            Get the file name without the trailing extension.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagingUriHelper.GetPath(System.Uri)">
            Get the directory path from the specified Uri.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagingUriHelper.Combine(System.Uri,System.Uri)">
             Combine two URIs.
             @param prefix the prefix Uri
             @param suffix the suffix Uri
             @return the Combined Uri
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagingUriHelper.Combine(System.String,System.String)">
            Combine a string Uri with a prefix and a suffix.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagingUriHelper.RelativizeUri(System.Uri,System.Uri,System.Boolean)">
             Fully relativize the source part Uri against the target part Uri.
             @param sourceURI
                        The source part Uri.
             @param targetURI
                        The target part Uri.
             @return A fully relativize part name Uri ('word/media/image1.gif',
                     '/word/document.xml' => 'media/image1.gif') else
                     <code>null</code>.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagingUriHelper.RelativizeUri(System.Uri,System.Uri)">
             Fully relativize the source part URI against the target part URI.
             @param sourceURI
                        The source part URI.
             @param targetURI
                        The target part URI.
             @return A fully relativize part name URI ('word/media/image1.gif',
                     '/word/document.xml' => 'media/image1.gif') else
                     <code>null</code>.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagingUriHelper.ResolvePartUri(System.Uri,System.Uri)">
             Resolve a source uri against a target.
             @param sourcePartUri
                        The source Uri.
             @param targetUri
                        The target Uri.
             @return The resolved Uri.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagingUriHelper.GetURIFromPath(System.String)">
            Get Uri from a string path.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagingUriHelper.GetSourcePartUriFromRelationshipPartUri(System.Uri)">
             Get the source part Uri from a specified relationships part.
             @param relationshipPartUri
                        The relationship part use to retrieve the source part.
             @return The source part Uri from the specified relationships part.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagingUriHelper.CreatePartName(System.Uri)">
             Create an OPC compliant part name by throwing an exception if the Uri is
             not valid.
             @param partUri
                        The part name Uri to validate.
             @return A valid part name object, else <code>null</code>.
             @throws InvalidFormatException
                         Throws if the specified Uri is not OPC compliant.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagingUriHelper.CreatePartName(System.String)">
             Create an OPC compliant part name.
             @param partName
                        The part name to validate.
             @return The correspondant part name if valid, else <code>null</code>.
             @throws InvalidFormatException
                         Throws if the specified part name is not OPC compliant.
             @see #CreatePartName(Uri)
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagingUriHelper.CreatePartName(System.String,NPOI.OpenXml4Net.OPC.PackagePart)">
             Create an OPC compliant part name by resolving it using a base part.
             @param partName
                        The part name to validate.
             @param relativePart
                        The relative base part.
             @return The correspondant part name if valid, else <code>null</code>.
             @throws InvalidFormatException
                         Throws if the specified part name is not OPC compliant.
             @see #CreatePartName(Uri)
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagingUriHelper.CreatePartName(System.Uri,NPOI.OpenXml4Net.OPC.PackagePart)">
             Create an OPC compliant part name by resolving it using a base part.
             @param partName
                        The part name Uri to validate.
             @param relativePart
                        The relative base part.
             @return The correspondant part name if valid, else <code>null</code>.
             @throws InvalidFormatException
                         Throws if the specified part name is not OPC compliant.
             @see #CreatePartName(Uri)
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagingUriHelper.IsValidPartName(System.Uri)">
             Validate a part Uri by returning a bool.
             ([M1.1],[M1.3],[M1.4],[M1.5],[M1.6])
             (OPC Specifications 8.1.1 Part names) :
             Part Name Syntax
             The part name grammar is defined as follows:
             <i>part_name = 1*( "/" segment )
             segment = 1*( pchar )</i>
             (pchar is defined in RFC 3986)
             @param partUri
                        The Uri to validate.
             @return <b>true</b> if the Uri is valid to the OPC Specifications, else
                     <b>false</b>
             @see #CreatePartName(Uri)
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagingUriHelper.DecodeURI(System.Uri)">
             Decode a Uri by converting all percent encoded character into a String
             character.
             @param uri
                        The Uri to decode.
             @return The specified Uri in a String with converted percent encoded
                     characters.
        </member>
        <!-- Badly formed XML comment ignored for member "M:NPOI.OpenXml4Net.OPC.PackagingUriHelper.ToUri(System.String)" -->
        <!-- Badly formed XML comment ignored for member "M:NPOI.OpenXml4Net.OPC.PackagingUriHelper.Encode(System.String)" -->
        <member name="M:NPOI.OpenXml4Net.OPC.PackagingUriHelper.GetRelationshipPartName(NPOI.OpenXml4Net.OPC.PackagePartName)">
             Build a part name where the relationship should be stored ((ex
             /word/document.xml -> /word/_rels/document.xml.rels)
             @param partName
                        Source part Uri
             @return the full path (as Uri) of the relation file
             @throws InvalidOperationException
                         Throws if the specified Uri is a relationshp part.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.RelationshipSource.AddRelationship(NPOI.OpenXml4Net.OPC.PackagePartName,NPOI.OpenXml4Net.OPC.TargetMode,System.String)">
            Add a relationship to a part (except relationships part).
            @param targetPartName
                       Name of the target part. This one must be relative to the
                       source root directory of the part.
            @param targetMode
                       Mode [Internal|External].
            @param relationshipType
                       Type of relationship.
            @return The newly created and added relationship
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.RelationshipSource.AddRelationship(NPOI.OpenXml4Net.OPC.PackagePartName,NPOI.OpenXml4Net.OPC.TargetMode,System.String,System.String)">
                     * Add a relationship to a part (except relationships part).
                     * Check rule M1.25: The Relationships part shall not have relationships to
                     * any other part. Package implementers shall enforce this requirement upon
                     * the attempt to create such a relationship and shall treat any such
                     * relationship as invalid.
                     *
                     * @param targetPartName
                     *            Name of the target part. This one must be relative to the
                     *            source root directory of the part.
                     * @param targetMode
                     *            Mode [Internal|External].
                     * @param relationshipType
                     *            Type of relationship.
                     * @param id
                     *            Relationship unique id.
                     * @return The newly created and added relationship
                     *
                     * @throws InvalidFormatException
                     *             If the URI point to a relationship part URI.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.RelationshipSource.AddExternalRelationship(System.String,System.String)">
            Adds an external relationship to a part
             (except relationships part).
            The targets of external relationships are not
             subject to the same validity checks that internal
             ones are, as the contents is potentially
             any file, URL or similar.
            @param target External target of the relationship
            @param relationshipType Type of relationship.
            @return The newly created and added relationship
            @see org.apache.poi.OpenXml4Net.opc.RelationshipSource#addExternalRelationship(java.lang.String, java.lang.String)
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.RelationshipSource.AddExternalRelationship(System.String,System.String,System.String)">
            Adds an external relationship to a part
             (except relationships part).
            The targets of external relationships are not
             subject to the same validity checks that internal
             ones are, as the contents is potentially
             any file, URL or similar.
            @param target External target of the relationship
            @param relationshipType Type of relationship.
            @param id Relationship unique id.
            @return The newly created and added relationship
            @see org.apache.poi.OpenXml4Net.opc.RelationshipSource#addExternalRelationship(java.lang.String, java.lang.String)
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.RelationshipSource.ClearRelationships">
            Delete all the relationships attached to this.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.RelationshipSource.RemoveRelationship(System.String)">
            Delete the relationship specified by its id.
            @param id
                       The ID identified the part to delete.
        </member>
        <member name="P:NPOI.OpenXml4Net.OPC.RelationshipSource.Relationships">
            Retrieve all the relationships attached to this.
            @return This part's relationships.
            @throws OpenXml4NetException
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.RelationshipSource.GetRelationship(System.String)">
            Retrieves a package relationship from its id.
            @param id
                       ID of the package relationship to retrieve.
            @return The package relationship
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.RelationshipSource.GetRelationshipsByType(System.String)">
            Retrieve all relationships attached to this part which have the specified
            type.
            @param relationshipType
                       Relationship type filter.
            @return All relationships from this part that have the specified type.
            @throws InvalidFormatException
                        If an error occurs while parsing the part.
            @throws InvalidOperationException
                        If the package is open in write only mode.
        </member>
        <member name="P:NPOI.OpenXml4Net.OPC.RelationshipSource.HasRelationships">
            Knows if the part have any relationships.
            @return <b>true</b> if the part have at least one relationship else
                    <b>false</b>.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.RelationshipSource.IsRelationshipExists(NPOI.OpenXml4Net.OPC.PackageRelationship)">
            Checks if the specified relationship is part of this package part.
            @param rel
                       The relationship to check.
            @return <b>true</b> if the specified relationship exists in this part,
                    else returns <b>false</b>
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.StreamHelper.SaveXmlInStream(System.Xml.XmlDocument,System.IO.Stream)">
             Turning the DOM4j object in the specified output stream.
             @param xmlContent
                        The XML document.
             @param outStream
                        The Stream in which the XML document will be written.
             @return <b>true</b> if the xml is successfully written in the stream,
                     else <b>false</b>.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.StreamHelper.CopyStream(System.IO.Stream,System.IO.Stream)">
             Copy the input stream into the output stream.
             @param inStream
                        The source stream.
             @param outStream
                        The destination stream.
             @return <b>true</b> if the operation succeed, else return <b>false</b>.
        </member>
        <member name="T:NPOI.OpenXml4Net.OPC.TargetMode">
             Specifies whether the target of a PackageRelationship is inside or outside a
             Package.
             @author Julien Chable
             @version 1.0
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.TargetMode.Internal">
            The relationship references a resource that is external to the package.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.TargetMode.External">
            The relationship references a part that is inside the package.
        </member>
        <member name="T:NPOI.OpenXml4Net.OPC.ZipPackage">
             Physical zip package.
             @author Julien Chable
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.ZipPackage.zipArchive">
            Zip archive, as either a file on disk,
             or a stream
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.ZipPackage.#ctor">
            Constructor. Creates a new ZipPackage.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.ZipPackage.#ctor(System.IO.Stream,NPOI.OpenXml4Net.OPC.PackageAccess)">
             Constructor. <b>Operation not supported.</b>
             @param in
                        Zip input stream to load.
             @param access
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.ZipPackage.#ctor(System.String,NPOI.OpenXml4Net.OPC.PackageAccess)">
             Constructor. Opens a Zip based Open XML document.
             @param path
                        The path of the file to open or create.
             @param access
                        The package access mode.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.ZipPackage.#ctor(System.IO.FileInfo,NPOI.OpenXml4Net.OPC.PackageAccess)">
             Constructor. Opens a Zip based Open XML document.
             @param file
                        The file to open or create.
             @param access
                        The package access mode.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.ZipPackage.#ctor(NPOI.OpenXml4Net.Util.ZipEntrySource,NPOI.OpenXml4Net.OPC.PackageAccess)">
             Constructor. Opens a Zip based Open XML document from
              a custom ZipEntrySource, typically an open archive
              from another system
             @param zipEntry
                        Zip data to load.
             @param access
                        The package access mode.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.ZipPackage.GetPartsImpl">
             Retrieves the parts from this package. We assume that the package has not
             been yet inspect to retrieve all the parts, this method will open the
             archive and look for all parts contain inside it. If the package part
             list is not empty, it will be emptied.
             @return All parts contain in this package.
             @throws InvalidFormatException
                         Throws if the package is not valid.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.ZipPackage.BuildPartName(ICSharpCode.SharpZipLib.Zip.ZipEntry)">
            Builds a PackagePartName for the given ZipEntry,
             or null if it's the content types / invalid part
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.ZipPackage.CreatePartImpl(NPOI.OpenXml4Net.OPC.PackagePartName,System.String,System.Boolean)">
             Create a new MemoryPackagePart from the specified URI and content type
             aram partName The part URI.
             @param contentType
                        The part content type.
             @return The newly created zip package part, else <b>null</b>.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.ZipPackage.RemovePartImpl(NPOI.OpenXml4Net.OPC.PackagePartName)">
             Delete a part from the package
             @throws ArgumentException
                         Throws if the part URI is nulll or invalid.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.ZipPackage.FlushImpl">
            Flush the package. Do nothing.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.ZipPackage.CloseImpl">
             Close and save the package.
             @see #close()
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.ZipPackage.GenerateTempFileName(System.String)">
             Create a unique identifier to be use as a temp file name.
             @return A unique identifier use to be use as a temp file name.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.ZipPackage.RevertImpl">
            Close the package without saving the document. Discard all the changes
            made to this package.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.ZipPackage.GetPartImpl(NPOI.OpenXml4Net.OPC.PackagePartName)">
             Implement the getPart() method to retrieve a part from its URI in the
             current package
             @see #getPart(PackageRelationship)
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.ZipPackage.SaveImpl(System.IO.Stream)">
             Save this package into the specified stream
             @param outputStream
                        The stream use to save this package.
             @see #save(OutputStream)
        </member>
        <member name="P:NPOI.OpenXml4Net.OPC.ZipPackage.ZipArchive">
             Get the zip archive
             @return The zip archive.
        </member>
        <member name="T:NPOI.OpenXml4Net.OPC.ZipPackagePart">
            Zip implementation of a PackagePart.
            @author Julien Chable
            @version 1.0
            @see PackagePart
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.ZipPackagePart.zipEntry">
            The zip entry corresponding to this part.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.ZipPackagePart.#ctor(NPOI.OpenXml4Net.OPC.OPCPackage,NPOI.OpenXml4Net.OPC.PackagePartName,System.String)">
            Constructor.
            @param container
                       The container package.
            @param partName
                       Part name.
            @param contentType
                       Content type.
            @throws InvalidFormatException
                        Throws if the content of this part invalid.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.ZipPackagePart.#ctor(NPOI.OpenXml4Net.OPC.OPCPackage,ICSharpCode.SharpZipLib.Zip.ZipEntry,NPOI.OpenXml4Net.OPC.PackagePartName,System.String)">
            Constructor.
            @param container
                       The container package.
            @param zipEntry
                       The zip entry corresponding to this part.
            @param partName
                       The part name.
            @param contentType
                       Content type.
            @throws InvalidFormatException
                        Throws if the content of this part is invalid.
        </member>
        <member name="P:NPOI.OpenXml4Net.OPC.ZipPackagePart.ZipArchive">
            Get the zip entry of this part.
            @return The zip entry in the zip structure coresponding to this part.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.ZipPackagePart.GetInputStreamImpl">
            Implementation of the getInputStream() which return the inputStream of
            this part zip entry.
            @return Input stream of this part zip entry.
        </member>
        <member name="T:NPOI.OpenXml4Net.Util.ZipEntrySource">
            An Interface to make getting the different bits
             of a Zip File easy.
            Allows you to get at the ZipEntries, without
             needing to worry about ZipFile vs ZipInputStream
             being annoyingly very different.
        </member>
        <member name="P:NPOI.OpenXml4Net.Util.ZipEntrySource.Entries">
            Returns an Enumeration of all the Entries
        </member>
        <member name="M:NPOI.OpenXml4Net.Util.ZipEntrySource.GetInputStream(ICSharpCode.SharpZipLib.Zip.ZipEntry)">
            Returns an InputStream of the decompressed
             data that makes up the entry
        </member>
        <member name="M:NPOI.OpenXml4Net.Util.ZipEntrySource.Close">
            Indicates we are done with reading, and
             resources may be freed
        </member>
        <member name="P:NPOI.OpenXml4Net.Util.ZipEntrySource.IsClosed">
            Has close been called already?
        </member>
        <member name="T:NPOI.OpenXml4Net.Util.ZipFileZipEntrySource">
            A ZipEntrySource wrapper around a ZipFile.
            Should be as low in terms of memory as a
             normal ZipFile implementation is.
        </member>
        <member name="T:NPOI.OpenXml4Net.Util.ZipInputStreamZipEntrySource">
            Provides a way to get at all the ZipEntries
             from a ZipInputStream, as many times as required.
            Allows a ZipInputStream to be treated much like
             a ZipFile, for a price in terms of memory.
            Be sure to call {@link #close()} as soon as you're
             done, to free up that memory!
        </member>
        <member name="M:NPOI.OpenXml4Net.Util.ZipInputStreamZipEntrySource.#ctor(ICSharpCode.SharpZipLib.Zip.ZipInputStream)">
            Reads all the entries from the ZipInputStream
             into memory, and closes the source stream.
            We'll then eat lots of memory, but be able to
             work with the entries at-will.
        </member>
        <member name="T:NPOI.OpenXml4Net.Util.ZipInputStreamZipEntrySource.EntryEnumerator">
            Why oh why oh why are Iterator and Enumeration
             still not compatible?
        </member>
        <member name="T:NPOI.OpenXml4Net.Util.ZipInputStreamZipEntrySource.FakeZipEntry">
            So we can close the real zip entry and still
             effectively work with it.
            Holds the (decompressed!) data in memory, so
             close this as soon as you can!
        </member>
        <member name="T:NPOI.Openxml4Net.Exceptions.NotOfficeXmlFileException">
            This exception is thrown when we try to open a file that doesn't
             seem to actually be an OOXML (Office Open XML) file After all
        </member>
        <member name="T:NPOI.Openxml4Net.Exceptions.ODFNotOfficeXmlFileException">
            This exception is thrown when we are given an ODF-based file
             (eg OpenOffice .ods) instead of an actually OOXML (Office Open XML) file
        </member>
        <member name="T:NPOI.Openxml4Net.Exceptions.OLE2NotOfficeXmlFileException">
            This exception is thrown when we are given an OLE2-based file
             (eg Excel .xls) instead of an actually OOXML (Office Open XML) file
        </member>
        <member name="F:NPOI.Util.XMLConstants.NULL_NS_URI">
             <p>Namespace URI to use to represent that there is no Namespace.</p>
             <p>Defined by the Namespace specification to be "".</p>
             @see <a href="http://www.w3.org/TR/REC-xml-names/#defaulting">
             Namespaces in XML, 5.2 Namespace Defaulting</a>
        </member>
        <member name="F:NPOI.Util.XMLConstants.DEFAULT_NS_PREFIX">
             <p>Prefix to use to represent the default XML Namespace.</p>
             <p>Defined by the XML specification to be "".</p>
             @see <a
             href="http://www.w3.org/TR/REC-xml-names/#ns-qualnames">
             Namespaces in XML, 3. Qualified Names</a>
        </member>
        <member name="F:NPOI.Util.XMLConstants.XML_NS_URI">
             <p>The official XML Namespace name URI.</p>
             <p>Defined by the XML specification to be
             "{@code http://www.w3.org/XML/1998/namespace}".</p>
             @see <a
             href="http://www.w3.org/TR/REC-xml-names/#ns-qualnames">
             Namespaces in XML, 3. Qualified Names</a>
        </member>
        <!-- Badly formed XML comment ignored for member "F:NPOI.Util.XMLConstants.XML_NS_PREFIX" -->
        <member name="F:NPOI.Util.XMLConstants.XMLNS_ATTRIBUTE_NS_URI">
             <p>The official XML attribute used for specifying XML Namespace
             declarations, {@link #XMLNS_ATTRIBUTE
             XMLConstants.XMLNS_ATTRIBUTE}, Namespace name URI.</p>
             <p>Defined by the XML specification to be
             "{@code http://www.w3.org/2000/xmlns/}".</p>
             @see <a
             href="http://www.w3.org/TR/REC-xml-names/#ns-qualnames">
             Namespaces in XML, 3. Qualified Names</a>
             @see <a
             href="http://www.w3.org/XML/xml-names-19990114-errata">
             Namespaces in XML Errata</a>
        </member>
        <member name="F:NPOI.Util.XMLConstants.XMLNS_ATTRIBUTE">
             <p>The official XML attribute used for specifying XML Namespace
             declarations.</p>
             <p>It is <strong><em>NOT</em></strong> valid to use as a
             prefix.  Defined by the XML specification to be
             "{@code xmlns}".</p>
             @see <a
             href="http://www.w3.org/TR/REC-xml-names/#ns-qualnames">
             Namespaces in XML, 3. Qualified Names</a>
        </member>
        <!-- Badly formed XML comment ignored for member "F:NPOI.Util.XMLConstants.W3C_XML_SCHEMA_NS_URI" -->
        <member name="F:NPOI.Util.XMLConstants.W3C_XML_SCHEMA_INSTANCE_NS_URI">
             <p>W3C XML Schema Instance Namespace URI.</p>
             <p>Defined to be "{@code http://www.w3.org/2001/XMLSchema-instance}".</p>
             @see <a href=
              "http://www.w3.org/TR/xmlschema-1/#Instance_Document_Constructions">
              XML Schema Part 1:
              Structures, 2.6 Schema-Related Markup in Documents Being Validated</a>
        </member>
        <member name="F:NPOI.Util.XMLConstants.W3C_XPATH_DATATYPE_NS_URI">
             <p>W3C XPath Datatype Namespace URI.</p>
             <p>Defined to be "{@code http://www.w3.org/2003/11/xpath-datatypes}".</p>
             @see <a href="http://www.w3.org/TR/xpath-datamodel">XQuery 1.0 and XPath 2.0 Data Model</a>
        </member>
        <!-- Badly formed XML comment ignored for member "F:NPOI.Util.XMLConstants.XML_DTD_NS_URI" -->
        <member name="F:NPOI.Util.XMLConstants.RELAXNG_NS_URI">
             <p>RELAX NG Namespace URI.</p>
             <p>Defined to be "{@code http://relaxng.org/ns/structure/1.0}".</p>
             @see <a href="http://relaxng.org/spec-20011203.html">RELAX NG Specification</a>
        </member>
    </members>
</doc>
VueWebApi/bin/NPOI.OpenXmlFormats.pdb
Binary files differ
VueWebApi/bin/NPOI.pdb
Binary files differ
VueWebApi/bin/NPOI.xml
¶Ô±ÈÐÂÎļþ
ÎļþÌ«´ó
VueWebApi/bin/Newtonsoft.Json.xml
ÎļþÒÑɾ³ý
VueWebApi/bin/Pipelines.Sockets.Unofficial.xml
ÎļþÒÑɾ³ý
VueWebApi/bin/ServiceStack.Common.xml
ÎļþÒÑɾ³ý
VueWebApi/bin/ServiceStack.Interfaces.xml
ÎļþÒÑɾ³ý
VueWebApi/bin/ServiceStack.Redis.xml
ÎļþÒÑɾ³ý
VueWebApi/bin/ServiceStack.Text.xml
ÎļþÒÑɾ³ý
VueWebApi/bin/StackExchange.Redis.xml
ÎļþÒÑɾ³ý
VueWebApi/bin/System.Buffers.xml
ÎļþÒÑɾ³ý
VueWebApi/bin/System.Diagnostics.PerformanceCounter.xml
ÎļþÒÑɾ³ý
VueWebApi/bin/System.IO.Pipelines.xml
ÎļþÒÑɾ³ý
VueWebApi/bin/System.Memory.xml
ÎļþÒÑɾ³ý
VueWebApi/bin/System.Net.Http.Formatting.xml
ÎļþÒÑɾ³ý
VueWebApi/bin/System.Numerics.Vectors.xml
ÎļþÒÑɾ³ý
VueWebApi/bin/System.Runtime.CompilerServices.Unsafe.xml
ÎļþÒÑɾ³ý
VueWebApi/bin/System.Threading.Channels.xml
ÎļþÒÑɾ³ý
VueWebApi/bin/System.Threading.Tasks.Extensions.xml
ÎļþÒÑɾ³ý
VueWebApi/bin/System.Web.Helpers.xml
ÎļþÒÑɾ³ý
VueWebApi/bin/System.Web.Http.Cors.xml
ÎļþÒÑɾ³ý
VueWebApi/bin/System.Web.Http.WebHost.xml
ÎļþÒÑɾ³ý
VueWebApi/bin/System.Web.Http.xml
ÎļþÒÑɾ³ý
VueWebApi/bin/System.Web.Mvc.xml
ÎļþÒÑɾ³ý
VueWebApi/bin/System.Web.Optimization.xml
ÎļþÒÑɾ³ý
VueWebApi/bin/System.Web.Razor.xml
ÎļþÒÑɾ³ý
VueWebApi/bin/System.Web.WebPages.Deployment.xml
ÎļþÒÑɾ³ý
VueWebApi/bin/System.Web.WebPages.Razor.xml
ÎļþÒÑɾ³ý
VueWebApi/bin/System.Web.WebPages.xml
ÎļþÒÑɾ³ý
VueWebApi/bin/VueWebApi.dll.config
@@ -15,13 +15,15 @@
      <!--本地环境-->
      <!--<add key="DBServer" value="Data Source=.;Initial Catalog=vmes;Integrated Security=True" />-->
      <!--服务器环境-->
      <add key="DBServer" value="Data Source=121.196.36.24;Initial Catalog=vmes;User ID=sa;Password=xkd@20220602"/>
      <add key="DBServer" value="Data Source=121.196.36.24;Initial Catalog=vmes;User ID=sa;Password=xkd@20220602" />
      <!--redis数据库链接配置ip-->
      <add key="RedisConnIp" value="127.0.0.1" />
      <!--redis数据库链接配置端口号-->
      <add key="RedisConnPort" value="6379" />
      <!--key失效时间30秒-->
      <add key="RedisKeyTimeCont" value="120" />
      <!--Excel导出模板配置IP-->
      <add key="FileIP" value="http://121.196.36.24:8001/"/>
    <add key="webpages:Version" value="3.0.0.0" />
    <add key="webpages:Enabled" value="false" />
    <add key="ClientValidationEnabled" value="true" />
@@ -35,25 +37,25 @@
      <security>
          <requestFiltering>
              <!--主要是maxAllowedContentLength属性-->
              <requestLimits maxAllowedContentLength="2147483647" maxQueryString="102400"/>
              <requestLimits maxAllowedContentLength="2147483647" maxQueryString="102400" />
          </requestFiltering>
      </security>
      <httpProtocol>
          <customHeaders>
              <add name="Access-Control-Allow-Origin" value="*"/>
              <add name="Access-Control-Allow-Headers" value="Content-Type"/>
              <add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS"/>
              <add name="Access-Control-Allow-Origin" value="*" />
              <add name="Access-Control-Allow-Headers" value="Content-Type" />
              <add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />
          </customHeaders>
      </httpProtocol>
      <modules runAllManagedModulesForAllRequests="true"/>
      <validation validateIntegratedModeConfiguration="false"/>
      <modules runAllManagedModulesForAllRequests="true" />
      <validation validateIntegratedModeConfiguration="false" />
      <staticContent>
          <remove fileExtension=".woff"/>
          <remove fileExtension=".woff2"/>
          <remove fileExtension=".json"/>
          <mimeMap fileExtension=".woff" mimeType="application/x-font-woff"/>
          <mimeMap fileExtension=".woff2" mimeType="application/font-woff2"/>
          <mimeMap fileExtension=".json" mimeType="application/json"/>
          <remove fileExtension=".woff" />
          <remove fileExtension=".woff2" />
          <remove fileExtension=".json" />
          <mimeMap fileExtension=".woff" mimeType="application/x-font-woff" />
          <mimeMap fileExtension=".woff2" mimeType="application/font-woff2" />
          <mimeMap fileExtension=".json" mimeType="application/json" />
      </staticContent>
    <handlers>
      <remove name="ExtensionlessUrlHandler-Integrated-4.0" />
@@ -100,6 +102,10 @@
        <assemblyIdentity name="System.Net.Http.Formatting" publicKeyToken="31bf3856ad364e35" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-5.2.7.0" newVersion="5.2.7.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-4.1.1.0" newVersion="4.1.1.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
  <system.codedom>
VueWebApi/bin/VueWebApi.pdb
Binary files differ
VueWebApi/bin/VueWebApi.xml
@@ -11,6 +11,24 @@
            <param name="name"></param>
            <returns></returns>
        </member>
        <member name="T:VueWebApi.App_Start.SwaggerControllerDescProvider">
            <summary>
            swagger显示控制器的描述
            </summary>
        </member>
        <member name="M:VueWebApi.App_Start.SwaggerControllerDescProvider.#ctor(Swashbuckle.Swagger.ISwaggerProvider,System.String)">
            <summary>
            </summary>
            <param name="swaggerProvider"></param>
            <param name="xml">xml文档路径</param>
        </member>
        <member name="M:VueWebApi.App_Start.SwaggerControllerDescProvider.GetControllerDesc">
            <summary>
            ä»ŽAPI文档中读取控制器描述
            </summary>
            <returns>所有控制器描述</returns>
        </member>
        <member name="M:VueWebApi.Areas.HelpPage.ApiDescriptionExtensions.GetFriendlyId(System.Web.Http.Description.ApiDescription)">
            <summary>
            Generates an URI-friendly ID for the <see cref="T:System.Web.Http.Description.ApiDescription"/>. E.g. "Get-Values-id_name" instead of "GetValues/{id}?name={name}"
@@ -624,11 +642,99 @@
            <param name="RoleCode">角色编码</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.BasicSettingController.RoleAssociationUser(System.String)">
        <member name="M:VueWebApi.Controllers.BasicSettingController.RoleAssociationUser(System.String,System.String,System.String,System.String,System.String,System.Int32,System.Int32,System.String,System.String)">
            <summary>
            è§’色清单关联用户查询
            </summary>
            <param name="rolecode">角色编码</param>
            <param name="usercode">用户编码</param>
            <param name="username">用户名称</param>
            <param name="orgcode">所属组织编码</param>
            <param name="isrole">关联角色</param>
            <param name="page">页码</param>
            <param name="rows">每页显示条数</param>
            <param name="prop">排序字段</param>
            <param name="order">排序规则</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.BasicSettingController.SaveRoleAssociationUser(System.String,System.Collections.Generic.List{VueWebApi.Models.ObjectData})">
            <summary>
            è§’色清单关联用户保存
            </summary>
            <param name="rolecode">角色编码</param>
            <param name="json">提交数据对象</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.BasicSettingController.RoleAssociationRight(System.String,System.String)">
            <summary>
            ç”¨æˆ·æ¸…单关联功能查询
            </summary>
            <param name="rolecode">角色编码</param>
            <param name="type">操作端分类编码</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.BasicSettingController.SaveUserAssoctRight(System.String,System.String,System.Collections.Generic.List{VueWebApi.Models.TreeDM})">
            <summary>
            è§’色清单关联功能保存
            </summary>
            <param name="rolecode">角色编码</param>
            <param name="usercode">登录用户编码</param>
            <param name="json">提交数据对象</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.ImportExcelController.DownLoadExcel(System.String)">
            <summary>
            Excel导入模板下载
            </summary>
            <param name="FileCode">文件编码</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.ImportExcelController.ExcelModelCheck(System.Web.HttpPostedFileBase,System.String)">
            <summary>
            Excel导入文件上传、模板验证、数据量、验证
            </summary>
            <param name="files">上传文件</param>
            <param name="FileCode">文件编码</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.ImportExcelController.ExcelCheckUpload(System.Web.HttpPostedFileBase,System.String)">
            <summary>
            Excel导入模板上传
            </summary>
            <param name="files">上传文件</param>
            <param name="FileCode">文件编码</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.ImportExcelController.ExcelCheck(System.Web.HttpPostedFileBase,System.String)">
            <summary>
            Excel导入模板验证
            </summary>
            <param name="files">上传文件</param>
            <param name="FileCode">文件编码</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.ImportExcelController.ExcelCheckCount(System.Web.HttpPostedFileBase,System.String)">
            <summary>
            Excel导入模板数据量验证
            </summary>
            <param name="files">上传文件</param>
            <param name="FileCode">文件编码</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.ImportExcelController.ExcelCheckData(System.String,System.String)">
            <summary>
            Excel导入数据验证
            </summary>
            <param name="FileCode">文件编码</param>
            <param name="FileName">文件名称</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.ImportExcelController.ExcelImportSubmit(System.String,System.String)">
            <summary>
            Excel导入数据
            </summary>
            <param name="FileCode">文件编码</param>
            <param name="FileName">文件名称</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.LoginController.LoginSave(System.String,System.String)">
@@ -948,11 +1054,69 @@
            <param name="parameters">参数数组</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Tools.ImportExcel.ExcelToTable(System.String)">
            <summary>
            Excel导入成Datable
            </summary>
            <param name="file">导入路径(包含文件名与扩展名)</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Tools.ImportExcel.ExcelToTableList(System.String)">
            <summary>
            Excel 2个Sheet导入成Datable
            </summary>
            <param name="file">导入路径(包含文件名与扩展名)</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Tools.ImportExcel.GetCellValue(NPOI.SS.UserModel.ICell)">
            <summary>
            èŽ·å–å•å…ƒæ ¼ç±»åž‹
            </summary>
            <param name="cell"></param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Tools.ImportExcel.ExcelToTableErro(System.String)">
            <summary>
            å•个Excel ä¸ä¸ºç©ºéªŒè¯ã€é‡å¤æ•°æ®éªŒè¯
            </summary>
            <param name="file">导入路径(包含文件名与扩展名)</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Tools.ImportExcel.ExcelToTableListErro(System.String)">
            <summary>
            Excel 2个Sheet æ•°æ®éªŒè¯
            </summary>
            <param name="file">导入路径(包含文件名与扩展名)</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Tools.LogHelper.WriteLog(System.Exception)">
            <summary>
            è¾“出日志到Log4Net
            </summary>
            <param name="ex"></param>
        </member>
        <member name="M:VueWebApi.Tools.NPOIHelper.ExportEasy(System.Data.DataTable,System.String)">
            <summary>
            NPOI简单Demo,快速入门代码
            </summary>
            <param name="dtSource"></param>
            <param name="strFileName"></param>
            <remarks>NPOI认为Excel的第一个单元格是:(0,0)</remarks>
            <Author>柳永法 http://www.yongfa365.com/ 2010-5-8 22:21:41</Author>
        </member>
        <member name="M:VueWebApi.Tools.NPOIHelper.GetExcelDatatableList(System.String)">
            <summary>
            å¤šä¸ªsheet导入
            </summary>
            <param name="fileUrl"></param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Tools.NPOIHelper.GetExcelDatatableListName(System.String)">
            <summary>
            å¤šä¸ªsheet导入
            </summary>
            <param name="fileUrl"></param>
            <returns></returns>
        </member>
        <member name="F:VueWebApi.Tools.RedisHelper.RedisIpConnString">
            <summary>
@@ -1055,6 +1219,14 @@
            <param name="rightcode">功能编码</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Tools.SeachEncode.RightLocation(System.String,System.String)">
            <summary>
            æ ¹æ®è§’色编码查询功能菜单
            </summary>
            <param name="rolecode"></param>
            <param name="type"></param>
            <returns></returns>
        </member>
        <member name="T:VueWebApi.Util.ObjectValueParser`1">
            <summary>
            å€¼è½¬æ¢å™¨
VueWebApi/bin/log4net.xml
ÎļþÒÑɾ³ý
VueWebApi/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache
Binary files differ
VueWebApi/obj/Debug/VueWebApi.csproj.CoreCompileInputs.cache
@@ -1 +1 @@
6c94e7d378d16fb39138391f5db5847a919d8d45
ab4d49211fff48cc3f62a40331c130254704121f
VueWebApi/obj/Debug/VueWebApi.csproj.FileListAbsolute.txt
@@ -166,14 +166,11 @@
D:\新凯迪MES\VueWebApi\VueWebApi\bin\roslyn\System.Diagnostics.FileVersionInfo.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\roslyn\System.Diagnostics.StackTrace.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\roslyn\System.Globalization.Calendars.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\roslyn\System.IO.Compression.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\roslyn\System.IO.Compression.ZipFile.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\roslyn\System.IO.FileSystem.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\roslyn\System.IO.FileSystem.Primitives.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\roslyn\System.Net.Http.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\roslyn\System.Net.Sockets.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\roslyn\System.Reflection.Metadata.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\roslyn\System.Runtime.InteropServices.RuntimeInformation.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\roslyn\System.Security.Cryptography.Algorithms.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\roslyn\System.Security.Cryptography.Encoding.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\roslyn\System.Security.Cryptography.Primitives.dll
@@ -190,88 +187,25 @@
D:\新凯迪MES\VueWebApi\VueWebApi\bin\roslyn\vbc.rsp
D:\新凯迪MES\VueWebApi\VueWebApi\bin\roslyn\VBCSCompiler.exe
D:\新凯迪MES\VueWebApi\VueWebApi\bin\roslyn\VBCSCompiler.exe.config
D:\新凯迪MES\VueWebApi\VueWebApi\bin\Antlr3.Runtime.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\Dapper.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\JWT.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\log4net.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\Microsoft.Bcl.AsyncInterfaces.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\Microsoft.Web.Infrastructure.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\Newtonsoft.Json.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\Pipelines.Sockets.Unofficial.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\ServiceStack.Common.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\ServiceStack.Interfaces.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\ServiceStack.Redis.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\ServiceStack.Text.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\StackExchange.Redis.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\Swashbuckle.Core.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\System.Buffers.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\System.Diagnostics.PerformanceCounter.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\BouncyCastle.Crypto.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\ICSharpCode.SharpZipLib.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\NPOI.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\NPOI.OOXML.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\NPOI.OpenXml4Net.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\NPOI.OpenXmlFormats.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\System.IO.Compression.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\System.IO.Pipelines.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\System.Memory.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\System.Net.Http.Formatting.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\System.Numerics.Vectors.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\System.Runtime.CompilerServices.Unsafe.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\System.Net.Http.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\System.Runtime.InteropServices.RuntimeInformation.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\System.Threading.Channels.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\System.Threading.Tasks.Extensions.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\System.Web.Cors.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\System.Web.Helpers.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\System.Web.Http.Cors.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\System.Web.Http.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\System.Web.Http.WebHost.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\System.Web.Mvc.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\System.Web.Optimization.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\System.Web.Razor.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\System.Web.WebPages.Deployment.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\System.Web.WebPages.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\System.Web.WebPages.Razor.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\WebActivatorEx.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\WebGrease.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\Dapper.xml
D:\新凯迪MES\VueWebApi\VueWebApi\bin\JWT.pdb
D:\新凯迪MES\VueWebApi\VueWebApi\bin\JWT.xml
D:\新凯迪MES\VueWebApi\VueWebApi\bin\log4net.xml
D:\新凯迪MES\VueWebApi\VueWebApi\bin\Microsoft.Bcl.AsyncInterfaces.xml
D:\新凯迪MES\VueWebApi\VueWebApi\bin\Pipelines.Sockets.Unofficial.xml
D:\新凯迪MES\VueWebApi\VueWebApi\bin\ServiceStack.Common.xml
D:\新凯迪MES\VueWebApi\VueWebApi\bin\ServiceStack.Interfaces.xml
D:\新凯迪MES\VueWebApi\VueWebApi\bin\ServiceStack.Redis.xml
D:\新凯迪MES\VueWebApi\VueWebApi\bin\ServiceStack.Text.xml
D:\新凯迪MES\VueWebApi\VueWebApi\bin\StackExchange.Redis.xml
D:\新凯迪MES\VueWebApi\VueWebApi\bin\System.Buffers.xml
D:\新凯迪MES\VueWebApi\VueWebApi\bin\System.Diagnostics.PerformanceCounter.xml
D:\新凯迪MES\VueWebApi\VueWebApi\bin\System.IO.Pipelines.xml
D:\新凯迪MES\VueWebApi\VueWebApi\bin\System.Memory.xml
D:\新凯迪MES\VueWebApi\VueWebApi\bin\System.Numerics.Vectors.xml
D:\新凯迪MES\VueWebApi\VueWebApi\bin\System.Runtime.CompilerServices.Unsafe.xml
D:\新凯迪MES\VueWebApi\VueWebApi\bin\System.Threading.Channels.xml
D:\新凯迪MES\VueWebApi\VueWebApi\bin\System.Threading.Tasks.Extensions.xml
D:\新凯迪MES\VueWebApi\VueWebApi\bin\System.Web.Http.Cors.xml
D:\新凯迪MES\VueWebApi\VueWebApi\bin\Newtonsoft.Json.xml
D:\新凯迪MES\VueWebApi\VueWebApi\bin\System.Net.Http.Formatting.xml
D:\新凯迪MES\VueWebApi\VueWebApi\bin\System.Web.Helpers.xml
D:\新凯迪MES\VueWebApi\VueWebApi\bin\System.Web.Http.xml
D:\新凯迪MES\VueWebApi\VueWebApi\bin\System.Web.Http.WebHost.xml
D:\新凯迪MES\VueWebApi\VueWebApi\bin\System.Web.Mvc.xml
D:\新凯迪MES\VueWebApi\VueWebApi\bin\System.Web.Optimization.xml
D:\新凯迪MES\VueWebApi\VueWebApi\bin\System.Web.Razor.xml
D:\新凯迪MES\VueWebApi\VueWebApi\bin\System.Web.WebPages.xml
D:\新凯迪MES\VueWebApi\VueWebApi\bin\System.Web.WebPages.Deployment.xml
D:\新凯迪MES\VueWebApi\VueWebApi\bin\System.Web.WebPages.Razor.xml
D:\新凯迪MES\VueWebApi\VueWebApi\bin\Antlr3.Runtime.pdb
D:\新凯迪MES\VueWebApi\VueWebApi\bin\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.xml
D:\新凯迪MES\VueWebApi\VueWebApi\bin\zh-Hans\System.Net.Http.Formatting.resources.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\zh-Hans\System.Web.Helpers.resources.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\zh-Hans\System.Web.Http.resources.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\zh-Hans\System.Web.Http.WebHost.resources.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\zh-Hans\System.Web.Mvc.resources.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\zh-Hans\System.Web.Optimization.resources.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\zh-Hans\System.Web.Razor.resources.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\zh-Hans\System.Web.WebPages.resources.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\zh-Hans\System.Web.WebPages.Deployment.resources.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\zh-Hans\System.Web.WebPages.Razor.resources.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\BouncyCastle.Crypto.xml
D:\新凯迪MES\VueWebApi\VueWebApi\bin\ICSharpCode.SharpZipLib.pdb
D:\新凯迪MES\VueWebApi\VueWebApi\bin\ICSharpCode.SharpZipLib.xml
D:\新凯迪MES\VueWebApi\VueWebApi\bin\NPOI.pdb
D:\新凯迪MES\VueWebApi\VueWebApi\bin\NPOI.xml
D:\新凯迪MES\VueWebApi\VueWebApi\bin\NPOI.OOXML.pdb
D:\新凯迪MES\VueWebApi\VueWebApi\bin\NPOI.OOXML.xml
D:\新凯迪MES\VueWebApi\VueWebApi\bin\NPOI.OpenXml4Net.pdb
D:\新凯迪MES\VueWebApi\VueWebApi\bin\NPOI.OpenXml4Net.xml
D:\新凯迪MES\VueWebApi\VueWebApi\bin\NPOI.OpenXmlFormats.pdb
D:\新凯迪MES\VueWebApi\VueWebApi\obj\Debug\VueWebApi.csproj.CoreCompileInputs.cache
D:\新凯迪MES\VueWebApi\VueWebApi\obj\Debug\VueWebApi.csproj.CopyComplete
D:\新凯迪MES\VueWebApi\VueWebApi\obj\Debug\VueWebApi.dll
VueWebApi/obj/Debug/VueWebApi.pdb
Binary files differ
VueWebApi/obj/Release/Package/PackageTmp/bin/VueWebApi.dll.config
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,111 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
  For more information on how to configure your ASP.NET application, please visit
  https://go.microsoft.com/fwlink/?LinkId=301879
  -->
<configuration>
    <configSections>
        <!--配置log4net-->
        <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
        <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
        <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
    </configSections>
  <appSettings>
      <!--数据库链接配置-->
      <!--本地环境-->
      <!--<add key="DBServer" value="Data Source=.;Initial Catalog=vmes;Integrated Security=True" />-->
      <!--服务器环境-->
      <add key="DBServer" value="Data Source=121.196.36.24;Initial Catalog=vmes;User ID=sa;Password=xkd@20220602"/>
      <!--redis数据库链接配置ip-->
      <add key="RedisConnIp" value="127.0.0.1" />
      <!--redis数据库链接配置端口号-->
      <add key="RedisConnPort" value="6379" />
      <!--key失效时间30秒-->
      <add key="RedisKeyTimeCont" value="120" />
    <add key="webpages:Version" value="3.0.0.0" />
    <add key="webpages:Enabled" value="false" />
    <add key="ClientValidationEnabled" value="true" />
    <add key="UnobtrusiveJavaScriptEnabled" value="true" />
  </appSettings>
  <system.web>
    <compilation debug="true" targetFramework="4.6.1" />
    <httpRuntime targetFramework="4.6.1" />
  </system.web>
  <system.webServer>
      <security>
          <requestFiltering>
              <!--主要是maxAllowedContentLength属性-->
              <requestLimits maxAllowedContentLength="2147483647" maxQueryString="102400"/>
          </requestFiltering>
      </security>
      <httpProtocol>
          <customHeaders>
              <add name="Access-Control-Allow-Origin" value="*" />
              <add name="Access-Control-Allow-Headers" value="Content-Type" />
              <add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />
          </customHeaders>
      </httpProtocol>
      <modules runAllManagedModulesForAllRequests="true"/>
      <validation validateIntegratedModeConfiguration="false"/>
      <staticContent>
          <remove fileExtension=".woff"/>
          <remove fileExtension=".woff2"/>
          <remove fileExtension=".json"/>
          <mimeMap fileExtension=".woff" mimeType="application/x-font-woff"/>
          <mimeMap fileExtension=".woff2" mimeType="application/font-woff2"/>
          <mimeMap fileExtension=".json" mimeType="application/json"/>
      </staticContent>
    <handlers>
      <remove name="ExtensionlessUrlHandler-Integrated-4.0" />
      <remove name="OPTIONSVerbHandler" />
      <remove name="TRACEVerbHandler" />
      <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
    </handlers>
  </system.webServer>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="Antlr3.Runtime" publicKeyToken="eb42632606e9261f" />
        <bindingRedirect oldVersion="0.0.0.0-3.5.0.2" newVersion="3.5.0.2" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="Newtonsoft.Json" culture="neutral" publicKeyToken="30ad4fe6b2a6aeed" />
        <bindingRedirect oldVersion="0.0.0.0-12.0.0.0" newVersion="12.0.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Web.Optimization" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="1.1.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="0.0.0.0-1.6.5135.21930" newVersion="1.6.5135.21930" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="1.0.0.0-5.2.7.0" newVersion="5.2.7.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-5.2.7.0" newVersion="5.2.7.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Net.Http.Formatting" publicKeyToken="31bf3856ad364e35" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-5.2.7.0" newVersion="5.2.7.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
  <system.codedom>
    <compilers>
      <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=2.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:default /nowarn:1659;1699;1701" />
      <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=2.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:default /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+" />
    </compilers>
  </system.codedom>
</configuration>
VueWebApi/obj/Release/Package/PackageTmp/bin/VueWebApi.pdb
Binary files differ
VueWebApi/obj/Release/Package/PackageTmp/bin/VueWebApi.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,1372 @@
<?xml version="1.0"?>
<doc>
    <assembly>
        <name>VueWebApi</name>
    </assembly>
    <members>
        <member name="M:VueWebApi.SwaggerConfig.GetXmlCommentsPath(System.String)">
            <summary>
            XML路径拼接
            </summary>
            <param name="name"></param>
            <returns></returns>
        </member>
        <member name="T:VueWebApi.App_Start.SwaggerControllerDescProvider">
            <summary>
            swagger显示控制器的描述
            </summary>
        </member>
        <member name="M:VueWebApi.App_Start.SwaggerControllerDescProvider.#ctor(Swashbuckle.Swagger.ISwaggerProvider,System.String)">
            <summary>
            </summary>
            <param name="swaggerProvider"></param>
            <param name="xml">xml文档路径</param>
        </member>
        <member name="M:VueWebApi.App_Start.SwaggerControllerDescProvider.GetControllerDesc">
            <summary>
            ä»ŽAPI文档中读取控制器描述
            </summary>
            <returns>所有控制器描述</returns>
        </member>
        <member name="M:VueWebApi.Areas.HelpPage.ApiDescriptionExtensions.GetFriendlyId(System.Web.Http.Description.ApiDescription)">
            <summary>
            Generates an URI-friendly ID for the <see cref="T:System.Web.Http.Description.ApiDescription"/>. E.g. "Get-Values-id_name" instead of "GetValues/{id}?name={name}"
            </summary>
            <param name="description">The <see cref="T:System.Web.Http.Description.ApiDescription"/>.</param>
            <returns>The ID as a string.</returns>
        </member>
        <member name="T:VueWebApi.Areas.HelpPage.HelpPageConfig">
            <summary>
            Use this class to customize the Help Page.
            For example you can set a custom <see cref="T:System.Web.Http.Description.IDocumentationProvider"/> to supply the documentation
            or you can provide the samples for the requests/responses.
            </summary>
        </member>
        <member name="T:VueWebApi.Areas.HelpPage.Controllers.HelpController">
            <summary>
            The controller that will handle requests for the help page.
            </summary>
        </member>
        <member name="M:VueWebApi.Areas.HelpPage.HelpPageConfigurationExtensions.SetDocumentationProvider(System.Web.Http.HttpConfiguration,System.Web.Http.Description.IDocumentationProvider)">
            <summary>
            Sets the documentation provider for help page.
            </summary>
            <param name="config">The <see cref="T:System.Web.Http.HttpConfiguration"/>.</param>
            <param name="documentationProvider">The documentation provider.</param>
        </member>
        <member name="M:VueWebApi.Areas.HelpPage.HelpPageConfigurationExtensions.SetSampleObjects(System.Web.Http.HttpConfiguration,System.Collections.Generic.IDictionary{System.Type,System.Object})">
            <summary>
            Sets the objects that will be used by the formatters to produce sample requests/responses.
            </summary>
            <param name="config">The <see cref="T:System.Web.Http.HttpConfiguration"/>.</param>
            <param name="sampleObjects">The sample objects.</param>
        </member>
        <member name="M:VueWebApi.Areas.HelpPage.HelpPageConfigurationExtensions.SetSampleRequest(System.Web.Http.HttpConfiguration,System.Object,System.Net.Http.Headers.MediaTypeHeaderValue,System.String,System.String)">
            <summary>
            Sets the sample request directly for the specified media type and action.
            </summary>
            <param name="config">The <see cref="T:System.Web.Http.HttpConfiguration"/>.</param>
            <param name="sample">The sample request.</param>
            <param name="mediaType">The media type.</param>
            <param name="controllerName">Name of the controller.</param>
            <param name="actionName">Name of the action.</param>
        </member>
        <member name="M:VueWebApi.Areas.HelpPage.HelpPageConfigurationExtensions.SetSampleRequest(System.Web.Http.HttpConfiguration,System.Object,System.Net.Http.Headers.MediaTypeHeaderValue,System.String,System.String,System.String[])">
            <summary>
            Sets the sample request directly for the specified media type and action with parameters.
            </summary>
            <param name="config">The <see cref="T:System.Web.Http.HttpConfiguration"/>.</param>
            <param name="sample">The sample request.</param>
            <param name="mediaType">The media type.</param>
            <param name="controllerName">Name of the controller.</param>
            <param name="actionName">Name of the action.</param>
            <param name="parameterNames">The parameter names.</param>
        </member>
        <member name="M:VueWebApi.Areas.HelpPage.HelpPageConfigurationExtensions.SetSampleResponse(System.Web.Http.HttpConfiguration,System.Object,System.Net.Http.Headers.MediaTypeHeaderValue,System.String,System.String)">
            <summary>
            Sets the sample request directly for the specified media type of the action.
            </summary>
            <param name="config">The <see cref="T:System.Web.Http.HttpConfiguration"/>.</param>
            <param name="sample">The sample response.</param>
            <param name="mediaType">The media type.</param>
            <param name="controllerName">Name of the controller.</param>
            <param name="actionName">Name of the action.</param>
        </member>
        <member name="M:VueWebApi.Areas.HelpPage.HelpPageConfigurationExtensions.SetSampleResponse(System.Web.Http.HttpConfiguration,System.Object,System.Net.Http.Headers.MediaTypeHeaderValue,System.String,System.String,System.String[])">
            <summary>
            Sets the sample response directly for the specified media type of the action with specific parameters.
            </summary>
            <param name="config">The <see cref="T:System.Web.Http.HttpConfiguration"/>.</param>
            <param name="sample">The sample response.</param>
            <param name="mediaType">The media type.</param>
            <param name="controllerName">Name of the controller.</param>
            <param name="actionName">Name of the action.</param>
            <param name="parameterNames">The parameter names.</param>
        </member>
        <member name="M:VueWebApi.Areas.HelpPage.HelpPageConfigurationExtensions.SetSampleForMediaType(System.Web.Http.HttpConfiguration,System.Object,System.Net.Http.Headers.MediaTypeHeaderValue)">
            <summary>
            Sets the sample directly for all actions with the specified media type.
            </summary>
            <param name="config">The <see cref="T:System.Web.Http.HttpConfiguration"/>.</param>
            <param name="sample">The sample.</param>
            <param name="mediaType">The media type.</param>
        </member>
        <member name="M:VueWebApi.Areas.HelpPage.HelpPageConfigurationExtensions.SetSampleForType(System.Web.Http.HttpConfiguration,System.Object,System.Net.Http.Headers.MediaTypeHeaderValue,System.Type)">
            <summary>
            Sets the sample directly for all actions with the specified type and media type.
            </summary>
            <param name="config">The <see cref="T:System.Web.Http.HttpConfiguration"/>.</param>
            <param name="sample">The sample.</param>
            <param name="mediaType">The media type.</param>
            <param name="type">The parameter type or return type of an action.</param>
        </member>
        <member name="M:VueWebApi.Areas.HelpPage.HelpPageConfigurationExtensions.SetActualRequestType(System.Web.Http.HttpConfiguration,System.Type,System.String,System.String)">
            <summary>
            Specifies the actual type of <see cref="T:System.Net.Http.ObjectContent`1"/> passed to the <see cref="T:System.Net.Http.HttpRequestMessage"/> in an action.
            The help page will use this information to produce more accurate request samples.
            </summary>
            <param name="config">The <see cref="T:System.Web.Http.HttpConfiguration"/>.</param>
            <param name="type">The type.</param>
            <param name="controllerName">Name of the controller.</param>
            <param name="actionName">Name of the action.</param>
        </member>
        <member name="M:VueWebApi.Areas.HelpPage.HelpPageConfigurationExtensions.SetActualRequestType(System.Web.Http.HttpConfiguration,System.Type,System.String,System.String,System.String[])">
            <summary>
            Specifies the actual type of <see cref="T:System.Net.Http.ObjectContent`1"/> passed to the <see cref="T:System.Net.Http.HttpRequestMessage"/> in an action.
            The help page will use this information to produce more accurate request samples.
            </summary>
            <param name="config">The <see cref="T:System.Web.Http.HttpConfiguration"/>.</param>
            <param name="type">The type.</param>
            <param name="controllerName">Name of the controller.</param>
            <param name="actionName">Name of the action.</param>
            <param name="parameterNames">The parameter names.</param>
        </member>
        <member name="M:VueWebApi.Areas.HelpPage.HelpPageConfigurationExtensions.SetActualResponseType(System.Web.Http.HttpConfiguration,System.Type,System.String,System.String)">
            <summary>
            Specifies the actual type of <see cref="T:System.Net.Http.ObjectContent`1"/> returned as part of the <see cref="T:System.Net.Http.HttpRequestMessage"/> in an action.
            The help page will use this information to produce more accurate response samples.
            </summary>
            <param name="config">The <see cref="T:System.Web.Http.HttpConfiguration"/>.</param>
            <param name="type">The type.</param>
            <param name="controllerName">Name of the controller.</param>
            <param name="actionName">Name of the action.</param>
        </member>
        <member name="M:VueWebApi.Areas.HelpPage.HelpPageConfigurationExtensions.SetActualResponseType(System.Web.Http.HttpConfiguration,System.Type,System.String,System.String,System.String[])">
            <summary>
            Specifies the actual type of <see cref="T:System.Net.Http.ObjectContent`1"/> returned as part of the <see cref="T:System.Net.Http.HttpRequestMessage"/> in an action.
            The help page will use this information to produce more accurate response samples.
            </summary>
            <param name="config">The <see cref="T:System.Web.Http.HttpConfiguration"/>.</param>
            <param name="type">The type.</param>
            <param name="controllerName">Name of the controller.</param>
            <param name="actionName">Name of the action.</param>
            <param name="parameterNames">The parameter names.</param>
        </member>
        <member name="M:VueWebApi.Areas.HelpPage.HelpPageConfigurationExtensions.GetHelpPageSampleGenerator(System.Web.Http.HttpConfiguration)">
            <summary>
            Gets the help page sample generator.
            </summary>
            <param name="config">The <see cref="T:System.Web.Http.HttpConfiguration"/>.</param>
            <returns>The help page sample generator.</returns>
        </member>
        <member name="M:VueWebApi.Areas.HelpPage.HelpPageConfigurationExtensions.SetHelpPageSampleGenerator(System.Web.Http.HttpConfiguration,VueWebApi.Areas.HelpPage.HelpPageSampleGenerator)">
            <summary>
            Sets the help page sample generator.
            </summary>
            <param name="config">The <see cref="T:System.Web.Http.HttpConfiguration"/>.</param>
            <param name="sampleGenerator">The help page sample generator.</param>
        </member>
        <member name="M:VueWebApi.Areas.HelpPage.HelpPageConfigurationExtensions.GetModelDescriptionGenerator(System.Web.Http.HttpConfiguration)">
            <summary>
            Gets the model description generator.
            </summary>
            <param name="config">The configuration.</param>
            <returns>The <see cref="T:VueWebApi.Areas.HelpPage.ModelDescriptions.ModelDescriptionGenerator"/></returns>
        </member>
        <member name="M:VueWebApi.Areas.HelpPage.HelpPageConfigurationExtensions.GetHelpPageApiModel(System.Web.Http.HttpConfiguration,System.String)">
            <summary>
            Gets the model that represents an API displayed on the help page. The model is initialized on the first call and cached for subsequent calls.
            </summary>
            <param name="config">The <see cref="T:System.Web.Http.HttpConfiguration"/>.</param>
            <param name="apiDescriptionId">The <see cref="T:System.Web.Http.Description.ApiDescription"/> ID.</param>
            <returns>
            An <see cref="T:VueWebApi.Areas.HelpPage.Models.HelpPageApiModel"/>
            </returns>
        </member>
        <member name="T:VueWebApi.Areas.HelpPage.ModelDescriptions.ModelDescription">
            <summary>
            Describes a type model.
            </summary>
        </member>
        <member name="T:VueWebApi.Areas.HelpPage.ModelDescriptions.ModelDescriptionGenerator">
            <summary>
            Generates model descriptions for given types.
            </summary>
        </member>
        <member name="T:VueWebApi.Areas.HelpPage.ModelDescriptions.ModelNameAttribute">
            <summary>
            Use this attribute to change the name of the <see cref="T:VueWebApi.Areas.HelpPage.ModelDescriptions.ModelDescription"/> generated for a type.
            </summary>
        </member>
        <member name="T:VueWebApi.Areas.HelpPage.Models.HelpPageApiModel">
            <summary>
            The model that represents an API displayed on the help page.
            </summary>
        </member>
        <member name="M:VueWebApi.Areas.HelpPage.Models.HelpPageApiModel.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:VueWebApi.Areas.HelpPage.Models.HelpPageApiModel"/> class.
            </summary>
        </member>
        <member name="P:VueWebApi.Areas.HelpPage.Models.HelpPageApiModel.ApiDescription">
            <summary>
            Gets or sets the <see cref="P:VueWebApi.Areas.HelpPage.Models.HelpPageApiModel.ApiDescription"/> that describes the API.
            </summary>
        </member>
        <member name="P:VueWebApi.Areas.HelpPage.Models.HelpPageApiModel.UriParameters">
            <summary>
            Gets or sets the <see cref="T:VueWebApi.Areas.HelpPage.ModelDescriptions.ParameterDescription"/> collection that describes the URI parameters for the API.
            </summary>
        </member>
        <member name="P:VueWebApi.Areas.HelpPage.Models.HelpPageApiModel.RequestDocumentation">
            <summary>
            Gets or sets the documentation for the request.
            </summary>
        </member>
        <member name="P:VueWebApi.Areas.HelpPage.Models.HelpPageApiModel.RequestModelDescription">
            <summary>
            Gets or sets the <see cref="T:VueWebApi.Areas.HelpPage.ModelDescriptions.ModelDescription"/> that describes the request body.
            </summary>
        </member>
        <member name="P:VueWebApi.Areas.HelpPage.Models.HelpPageApiModel.RequestBodyParameters">
            <summary>
            Gets the request body parameter descriptions.
            </summary>
        </member>
        <member name="P:VueWebApi.Areas.HelpPage.Models.HelpPageApiModel.ResourceDescription">
            <summary>
            Gets or sets the <see cref="T:VueWebApi.Areas.HelpPage.ModelDescriptions.ModelDescription"/> that describes the resource.
            </summary>
        </member>
        <member name="P:VueWebApi.Areas.HelpPage.Models.HelpPageApiModel.ResourceProperties">
            <summary>
            Gets the resource property descriptions.
            </summary>
        </member>
        <member name="P:VueWebApi.Areas.HelpPage.Models.HelpPageApiModel.SampleRequests">
            <summary>
            Gets the sample requests associated with the API.
            </summary>
        </member>
        <member name="P:VueWebApi.Areas.HelpPage.Models.HelpPageApiModel.SampleResponses">
            <summary>
            Gets the sample responses associated with the API.
            </summary>
        </member>
        <member name="P:VueWebApi.Areas.HelpPage.Models.HelpPageApiModel.ErrorMessages">
            <summary>
            Gets the error messages associated with this model.
            </summary>
        </member>
        <member name="T:VueWebApi.Areas.HelpPage.HelpPageSampleGenerator">
            <summary>
            This class will generate the samples for the help page.
            </summary>
        </member>
        <member name="M:VueWebApi.Areas.HelpPage.HelpPageSampleGenerator.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:VueWebApi.Areas.HelpPage.HelpPageSampleGenerator"/> class.
            </summary>
        </member>
        <member name="P:VueWebApi.Areas.HelpPage.HelpPageSampleGenerator.ActualHttpMessageTypes">
            <summary>
            Gets CLR types that are used as the content of <see cref="T:System.Net.Http.HttpRequestMessage"/> or <see cref="T:System.Net.Http.HttpResponseMessage"/>.
            </summary>
        </member>
        <member name="P:VueWebApi.Areas.HelpPage.HelpPageSampleGenerator.ActionSamples">
            <summary>
            Gets the objects that are used directly as samples for certain actions.
            </summary>
        </member>
        <member name="P:VueWebApi.Areas.HelpPage.HelpPageSampleGenerator.SampleObjects">
            <summary>
            Gets the objects that are serialized as samples by the supported formatters.
            </summary>
        </member>
        <member name="P:VueWebApi.Areas.HelpPage.HelpPageSampleGenerator.SampleObjectFactories">
            <summary>
            Gets factories for the objects that the supported formatters will serialize as samples. Processed in order,
            stopping when the factory successfully returns a non-<see langref="null"/> object.
            </summary>
            <remarks>
            Collection includes just <see cref="M:VueWebApi.Areas.HelpPage.ObjectGenerator.GenerateObject(System.Type)"/> initially. Use
            <code>SampleObjectFactories.Insert(0, func)</code> to provide an override and
            <code>SampleObjectFactories.Add(func)</code> to provide a fallback.</remarks>
        </member>
        <member name="M:VueWebApi.Areas.HelpPage.HelpPageSampleGenerator.GetSampleRequests(System.Web.Http.Description.ApiDescription)">
            <summary>
            Gets the request body samples for a given <see cref="T:System.Web.Http.Description.ApiDescription"/>.
            </summary>
            <param name="api">The <see cref="T:System.Web.Http.Description.ApiDescription"/>.</param>
            <returns>The samples keyed by media type.</returns>
        </member>
        <member name="M:VueWebApi.Areas.HelpPage.HelpPageSampleGenerator.GetSampleResponses(System.Web.Http.Description.ApiDescription)">
            <summary>
            Gets the response body samples for a given <see cref="T:System.Web.Http.Description.ApiDescription"/>.
            </summary>
            <param name="api">The <see cref="T:System.Web.Http.Description.ApiDescription"/>.</param>
            <returns>The samples keyed by media type.</returns>
        </member>
        <member name="M:VueWebApi.Areas.HelpPage.HelpPageSampleGenerator.GetSample(System.Web.Http.Description.ApiDescription,VueWebApi.Areas.HelpPage.SampleDirection)">
            <summary>
            Gets the request or response body samples.
            </summary>
            <param name="api">The <see cref="T:System.Web.Http.Description.ApiDescription"/>.</param>
            <param name="sampleDirection">The value indicating whether the sample is for a request or for a response.</param>
            <returns>The samples keyed by media type.</returns>
        </member>
        <member name="M:VueWebApi.Areas.HelpPage.HelpPageSampleGenerator.GetActionSample(System.String,System.String,System.Collections.Generic.IEnumerable{System.String},System.Type,System.Net.Http.Formatting.MediaTypeFormatter,System.Net.Http.Headers.MediaTypeHeaderValue,VueWebApi.Areas.HelpPage.SampleDirection)">
            <summary>
            Search for samples that are provided directly through <see cref="P:VueWebApi.Areas.HelpPage.HelpPageSampleGenerator.ActionSamples"/>.
            </summary>
            <param name="controllerName">Name of the controller.</param>
            <param name="actionName">Name of the action.</param>
            <param name="parameterNames">The parameter names.</param>
            <param name="type">The CLR type.</param>
            <param name="formatter">The formatter.</param>
            <param name="mediaType">The media type.</param>
            <param name="sampleDirection">The value indicating whether the sample is for a request or for a response.</param>
            <returns>The sample that matches the parameters.</returns>
        </member>
        <member name="M:VueWebApi.Areas.HelpPage.HelpPageSampleGenerator.GetSampleObject(System.Type)">
            <summary>
            Gets the sample object that will be serialized by the formatters.
            First, it will look at the <see cref="P:VueWebApi.Areas.HelpPage.HelpPageSampleGenerator.SampleObjects"/>. If no sample object is found, it will try to create
            one using <see cref="M:VueWebApi.Areas.HelpPage.HelpPageSampleGenerator.DefaultSampleObjectFactory(VueWebApi.Areas.HelpPage.HelpPageSampleGenerator,System.Type)"/> (which wraps an <see cref="T:VueWebApi.Areas.HelpPage.ObjectGenerator"/>) and other
            factories in <see cref="P:VueWebApi.Areas.HelpPage.HelpPageSampleGenerator.SampleObjectFactories"/>.
            </summary>
            <param name="type">The type.</param>
            <returns>The sample object.</returns>
        </member>
        <member name="M:VueWebApi.Areas.HelpPage.HelpPageSampleGenerator.ResolveHttpRequestMessageType(System.Web.Http.Description.ApiDescription)">
            <summary>
            Resolves the actual type of <see cref="T:System.Net.Http.ObjectContent`1"/> passed to the <see cref="T:System.Net.Http.HttpRequestMessage"/> in an action.
            </summary>
            <param name="api">The <see cref="T:System.Web.Http.Description.ApiDescription"/>.</param>
            <returns>The type.</returns>
        </member>
        <member name="M:VueWebApi.Areas.HelpPage.HelpPageSampleGenerator.ResolveType(System.Web.Http.Description.ApiDescription,System.String,System.String,System.Collections.Generic.IEnumerable{System.String},VueWebApi.Areas.HelpPage.SampleDirection,System.Collections.ObjectModel.Collection{System.Net.Http.Formatting.MediaTypeFormatter}@)">
            <summary>
            Resolves the type of the action parameter or return value when <see cref="T:System.Net.Http.HttpRequestMessage"/> or <see cref="T:System.Net.Http.HttpResponseMessage"/> is used.
            </summary>
            <param name="api">The <see cref="T:System.Web.Http.Description.ApiDescription"/>.</param>
            <param name="controllerName">Name of the controller.</param>
            <param name="actionName">Name of the action.</param>
            <param name="parameterNames">The parameter names.</param>
            <param name="sampleDirection">The value indicating whether the sample is for a request or a response.</param>
            <param name="formatters">The formatters.</param>
        </member>
        <member name="M:VueWebApi.Areas.HelpPage.HelpPageSampleGenerator.WriteSampleObjectUsingFormatter(System.Net.Http.Formatting.MediaTypeFormatter,System.Object,System.Type,System.Net.Http.Headers.MediaTypeHeaderValue)">
            <summary>
            Writes the sample object using formatter.
            </summary>
            <param name="formatter">The formatter.</param>
            <param name="value">The value.</param>
            <param name="type">The type.</param>
            <param name="mediaType">Type of the media.</param>
            <returns></returns>
        </member>
        <member name="T:VueWebApi.Areas.HelpPage.HelpPageSampleKey">
            <summary>
            This is used to identify the place where the sample should be applied.
            </summary>
        </member>
        <member name="M:VueWebApi.Areas.HelpPage.HelpPageSampleKey.#ctor(System.Net.Http.Headers.MediaTypeHeaderValue)">
            <summary>
            Creates a new <see cref="T:VueWebApi.Areas.HelpPage.HelpPageSampleKey"/> based on media type.
            </summary>
            <param name="mediaType">The media type.</param>
        </member>
        <member name="M:VueWebApi.Areas.HelpPage.HelpPageSampleKey.#ctor(System.Net.Http.Headers.MediaTypeHeaderValue,System.Type)">
            <summary>
            Creates a new <see cref="T:VueWebApi.Areas.HelpPage.HelpPageSampleKey"/> based on media type and CLR type.
            </summary>
            <param name="mediaType">The media type.</param>
            <param name="type">The CLR type.</param>
        </member>
        <member name="M:VueWebApi.Areas.HelpPage.HelpPageSampleKey.#ctor(VueWebApi.Areas.HelpPage.SampleDirection,System.String,System.String,System.Collections.Generic.IEnumerable{System.String})">
            <summary>
            Creates a new <see cref="T:VueWebApi.Areas.HelpPage.HelpPageSampleKey"/> based on <see cref="P:VueWebApi.Areas.HelpPage.HelpPageSampleKey.SampleDirection"/>, controller name, action name and parameter names.
            </summary>
            <param name="sampleDirection">The <see cref="P:VueWebApi.Areas.HelpPage.HelpPageSampleKey.SampleDirection"/>.</param>
            <param name="controllerName">Name of the controller.</param>
            <param name="actionName">Name of the action.</param>
            <param name="parameterNames">The parameter names.</param>
        </member>
        <member name="M:VueWebApi.Areas.HelpPage.HelpPageSampleKey.#ctor(System.Net.Http.Headers.MediaTypeHeaderValue,VueWebApi.Areas.HelpPage.SampleDirection,System.String,System.String,System.Collections.Generic.IEnumerable{System.String})">
            <summary>
            Creates a new <see cref="T:VueWebApi.Areas.HelpPage.HelpPageSampleKey"/> based on media type, <see cref="P:VueWebApi.Areas.HelpPage.HelpPageSampleKey.SampleDirection"/>, controller name, action name and parameter names.
            </summary>
            <param name="mediaType">The media type.</param>
            <param name="sampleDirection">The <see cref="P:VueWebApi.Areas.HelpPage.HelpPageSampleKey.SampleDirection"/>.</param>
            <param name="controllerName">Name of the controller.</param>
            <param name="actionName">Name of the action.</param>
            <param name="parameterNames">The parameter names.</param>
        </member>
        <member name="P:VueWebApi.Areas.HelpPage.HelpPageSampleKey.ControllerName">
            <summary>
            Gets the name of the controller.
            </summary>
            <value>
            The name of the controller.
            </value>
        </member>
        <member name="P:VueWebApi.Areas.HelpPage.HelpPageSampleKey.ActionName">
            <summary>
            Gets the name of the action.
            </summary>
            <value>
            The name of the action.
            </value>
        </member>
        <member name="P:VueWebApi.Areas.HelpPage.HelpPageSampleKey.MediaType">
            <summary>
            Gets the media type.
            </summary>
            <value>
            The media type.
            </value>
        </member>
        <member name="P:VueWebApi.Areas.HelpPage.HelpPageSampleKey.ParameterNames">
            <summary>
            Gets the parameter names.
            </summary>
        </member>
        <member name="P:VueWebApi.Areas.HelpPage.HelpPageSampleKey.SampleDirection">
            <summary>
            Gets the <see cref="P:VueWebApi.Areas.HelpPage.HelpPageSampleKey.SampleDirection"/>.
            </summary>
        </member>
        <member name="T:VueWebApi.Areas.HelpPage.ImageSample">
            <summary>
            This represents an image sample on the help page. There's a display template named ImageSample associated with this class.
            </summary>
        </member>
        <member name="M:VueWebApi.Areas.HelpPage.ImageSample.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:VueWebApi.Areas.HelpPage.ImageSample"/> class.
            </summary>
            <param name="src">The URL of an image.</param>
        </member>
        <member name="T:VueWebApi.Areas.HelpPage.InvalidSample">
            <summary>
            This represents an invalid sample on the help page. There's a display template named InvalidSample associated with this class.
            </summary>
        </member>
        <member name="T:VueWebApi.Areas.HelpPage.ObjectGenerator">
            <summary>
            This class will create an object of a given type and populate it with sample data.
            </summary>
        </member>
        <member name="M:VueWebApi.Areas.HelpPage.ObjectGenerator.GenerateObject(System.Type)">
            <summary>
            Generates an object for a given type. The type needs to be public, have a public default constructor and settable public properties/fields. Currently it supports the following types:
            Simple types: <see cref="T:System.Int32"/>, <see cref="T:System.String"/>, <see cref="T:System.Enum"/>, <see cref="T:System.DateTime"/>, <see cref="T:System.Uri"/>, etc.
            Complex types: POCO types.
            Nullables: <see cref="T:System.Nullable`1"/>.
            Arrays: arrays of simple types or complex types.
            Key value pairs: <see cref="T:System.Collections.Generic.KeyValuePair`2"/>
            Tuples: <see cref="T:System.Tuple`1"/>, <see cref="T:System.Tuple`2"/>, etc
            Dictionaries: <see cref="T:System.Collections.Generic.IDictionary`2"/> or anything deriving from <see cref="T:System.Collections.Generic.IDictionary`2"/>.
            Collections: <see cref="T:System.Collections.Generic.IList`1"/>, <see cref="T:System.Collections.Generic.IEnumerable`1"/>, <see cref="T:System.Collections.Generic.ICollection`1"/>, <see cref="T:System.Collections.IList"/>, <see cref="T:System.Collections.IEnumerable"/>, <see cref="T:System.Collections.ICollection"/> or anything deriving from <see cref="T:System.Collections.Generic.ICollection`1"/> or <see cref="T:System.Collections.IList"/>.
            Queryables: <see cref="T:System.Linq.IQueryable"/>, <see cref="T:System.Linq.IQueryable`1"/>.
            </summary>
            <param name="type">The type.</param>
            <returns>An object of the given type.</returns>
        </member>
        <member name="T:VueWebApi.Areas.HelpPage.SampleDirection">
            <summary>
            Indicates whether the sample is used for request or response
            </summary>
        </member>
        <member name="T:VueWebApi.Areas.HelpPage.TextSample">
            <summary>
            This represents a preformatted text sample on the help page. There's a display template named TextSample associated with this class.
            </summary>
        </member>
        <member name="T:VueWebApi.Areas.HelpPage.XmlDocumentationProvider">
            <summary>
            A custom <see cref="T:System.Web.Http.Description.IDocumentationProvider"/> that reads the API documentation from an XML documentation file.
            </summary>
        </member>
        <member name="M:VueWebApi.Areas.HelpPage.XmlDocumentationProvider.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:VueWebApi.Areas.HelpPage.XmlDocumentationProvider"/> class.
            </summary>
            <param name="documentPath">The physical path to XML document.</param>
        </member>
        <member name="M:VueWebApi.Controllers.BasicSettingController.OrganizationSearch(System.String,System.String,System.String,System.String,System.Int32,System.Int32,System.String,System.String)">
            <summary>
            ç»„织架构查询
            </summary>
            <param name="OrgCode">组织架构代码</param>
            <param name="OrgName">组织架构名称</param>
            <param name="OrgType">组织类型</param>
            <param name="UserName">创建人员</param>
            <param name="page">页码</param>
            <param name="rows">每页显示条数</param>
            <param name="prop">排序字段</param>
            <param name="order">排序规则</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.BasicSettingController.PrentOrganization(System.String)">
            <summary>
            ç»„织架构查找上级单位
            </summary>
            <param name="orgcode">组织编码</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.BasicSettingController.AddUpdateOrganization(Newtonsoft.Json.Linq.JObject)">
            <summary>
            ç»„织架构新增编辑
            </summary>
            <param name="obj">提交数据对象</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.BasicSettingController.DeleteOrganization(System.Int32)">
            <summary>
            ç»„织架构删除
            </summary>
            <param name="orgid">组织id</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.BasicSettingController.UserSearch(System.String,System.String,System.String,System.String,System.Int32,System.Int32,System.String,System.String)">
            <summary>
            ç”¨æˆ·æ¸…单查询
            </summary>
            <param name="UserCode">用户编码</param>
            <param name="UserName">用户名称</param>
            <param name="StuOrg">所属组织</param>
            <param name="Enable">在职状态</param>
            <param name="page">页码</param>
            <param name="rows">每页显示条数</param>
            <param name="prop">排序字段</param>
            <param name="order">排序规则</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.BasicSettingController.UserOrganization">
            <summary>
            ç”¨æˆ·æ‰€å±žç»„织查询
            </summary>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.BasicSettingController.AddUpdateUser(Newtonsoft.Json.Linq.JObject)">
            <summary>
            ç”¨æˆ·æ¸…单新增编辑
            </summary>
            <param name="obj">提交数据对象</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.BasicSettingController.DeleteUser(System.Int32)">
            <summary>
            ç”¨æˆ·åˆ é™¤
            </summary>
            <param name="Userid">用户id</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.BasicSettingController.UserAssociationRole(System.String)">
            <summary>
            ç”¨æˆ·æ¸…单关联角色查询
            </summary>
            <param name="usercode">用户编码</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.BasicSettingController.SaveUserAssoctRole(System.String,System.Collections.Generic.List{VueWebApi.Models.RoleUserSubmit})">
            <summary>
            ç”¨æˆ·æ¸…单关联角色保存
            </summary>
            <param name="usercode">用户编码</param>
            <param name="json">提交数据对象</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.BasicSettingController.RoleTypeSearch(System.Int32,System.Int32,System.String,System.String)">
            <summary>
            è§’色类型查询
            </summary>
            <param name="page">页码</param>
            <param name="rows">每页显示条数</param>
            <param name="prop">排序字段</param>
            <param name="order">排序规则</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.BasicSettingController.RoleTypeAdd(System.Collections.Generic.List{VueWebApi.Models.ObjectData})">
            <summary>
            è§’色类型新增
            </summary>
            <param name="json">角色类型提交数据</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.BasicSettingController.RoleTypeDelete(System.String)">
            <summary>
            è§’色类型删除
            </summary>
            <param name="RoleTypeCode">角色类型编码</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.BasicSettingController.RoleSearch(System.String,System.String,System.String,System.String,System.Int32,System.Int32,System.String,System.String)">
            <summary>
            è§’色清单查询
            </summary>
            <param name="RoleCode">角色编码</param>
            <param name="RoleName">角色名称</param>
            <param name="RoleTypeCode">角色类型编码</param>
            <param name="CreateUser">创建人员</param>
            <param name="page">页码</param>
            <param name="rows">每页显示条数</param>
            <param name="prop">排序字段</param>
            <param name="order">排序规则</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.BasicSettingController.AddUpdateRole(Newtonsoft.Json.Linq.JObject)">
            <summary>
            è§’色清单新增编辑
            </summary>
            <param name="obj">提交数据对象</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.BasicSettingController.DeleteRole(System.String)">
            <summary>
            è§’色清单删除
            </summary>
            <param name="RoleCode">角色编码</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.BasicSettingController.RoleAssociationUser(System.String,System.String,System.String,System.String,System.String,System.Int32,System.Int32,System.String,System.String)">
            <summary>
            è§’色清单关联用户查询
            </summary>
            <param name="rolecode">角色编码</param>
            <param name="usercode">用户编码</param>
            <param name="username">用户名称</param>
            <param name="orgcode">所属组织编码</param>
            <param name="isrole">关联角色</param>
            <param name="page">页码</param>
            <param name="rows">每页显示条数</param>
            <param name="prop">排序字段</param>
            <param name="order">排序规则</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.BasicSettingController.SaveRoleAssociationUser(System.String,System.Collections.Generic.List{VueWebApi.Models.ObjectData})">
            <summary>
            è§’色清单关联用户保存
            </summary>
            <param name="rolecode">角色编码</param>
            <param name="json">提交数据对象</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.BasicSettingController.RoleAssociationRight(System.String,System.String)">
            <summary>
            ç”¨æˆ·æ¸…单关联功能查询
            </summary>
            <param name="rolecode">角色编码</param>
            <param name="type">操作端分类编码</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.LoginController.LoginSave(System.String,System.String)">
            <summary>
            ç”¨æˆ·ç™»å½•
            </summary>
            <param name="username">用户名</param>
            <param name="password">密码</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.LoginController.LoginMenu">
            <summary>
            æŸ¥è¯¢åŠŸèƒ½èœå•
            </summary>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.LoginController.UpdateUserPassword(System.String,System.String,System.String)">
            <summary>
            ä¿®æ”¹å¯†ç 
            </summary>
            <param name="username">用户名</param>
            <param name="password">密码</param>
            <param name="newpassword">新密码</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.SystemSettingController.EncodingRules(System.String,System.String,System.Int32,System.Int32,System.String,System.String)">
            <summary>
            ç¼–码规则查询
            </summary>
            <param name="rightname">编码名称</param>
            <param name="prefix">固定字符</param>
            <param name="page">页码</param>
            <param name="rows">每页显示条数</param>
            <param name="prop">排序字段</param>
            <param name="order">排序规则</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.SystemSettingController.SaveEncodingRules(Newtonsoft.Json.Linq.JObject)">
            <summary>
            ç¼–码规则编辑保存
            </summary>
            <param name="obj">提交数据对象</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Controllers.SystemSettingController.NewEncodingRules(System.String)">
            <summary>
            èŽ·å–è§„åˆ™ç”Ÿæˆçš„ç¼–ç 
            </summary>
            <param name="rightcode">功能编码</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.WebApiApplication.Init">
            <summary>
            æ³¨å†ŒSession
            </summary>
        </member>
        <member name="T:VueWebApi.Tools.ChannelActionFilterAttribute">
            <summary>
            æ¸ é“过滤器
            </summary>
        </member>
        <member name="M:VueWebApi.Tools.ChannelActionFilterAttribute.OnActionExecuting(System.Web.Http.Controllers.HttpActionContext)">
            <summary>
            è¯·æ±‚接口之前渠道过滤
            </summary>
            <param name="actionContext"></param>
        </member>
        <member name="M:VueWebApi.Tools.DapperHelper.sqlConnection">
            <summary>
            åˆ›å»ºæ•°æ®åº“连接对象Sqlserver
            </summary>
            <returns></returns>
        </member>
        <!-- Badly formed XML comment ignored for member "M:VueWebApi.Tools.DapperHelper.select``1(System.String,System.Object)" -->
        <member name="M:VueWebApi.Tools.DapperHelper.selectToDict(System.String,System.Object)">
            <summary>
            Dapper查询返回List字典对象  æ— éœ€æ‰‹åЍWapper对象了
            </summary>
            <param name="sql"></param>
            <param name="parm"></param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Tools.DapperHelper.selectToObject``1(System.String,System.Object)">
            <summary>
            Dapper查询返回对象非List集合
            </summary>
            <typeparam name="T"></typeparam>
            <param name="sql"></param>
            <param name="parm"></param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Tools.DapperHelper.GetPageList``1(System.String,System.Object,System.String,System.String,System.Int32,System.Int32,System.Int32@)">
            <summary>
            dapper通用分页函数
            </summary>
            <typeparam name="T">泛型集合实体类</typeparam>
            <param name="sql">查询语句</param>
            <param name="orderBy">排序(字段 DESC/ASC)</param>
            <param name="pageIndex">当前页</param>
            <param name="pageSize">当前页显示条数</param>
            <param name="total">结果集总数</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Tools.DapperHelper.selectdata(System.String,System.Object)">
            <summary>
            Dapper查询返回datatable数据(带参数)
            </summary>
            <param name="sql"></param>
            <param name="parm"></param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Tools.DapperHelper.selecttable(System.String)">
            <summary>
            Dapper查询返回datatable数据(不带参数)
            </summary>
            <param name="sql"></param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Tools.DapperHelper.selectcount(System.String,System.Object)">
            <summary>
            Dapper查询返回数据条数
            </summary>
            <param name="sql"></param>
            <param name="parm"></param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Tools.DapperHelper.SQL(System.String,System.Object)">
            <summary>
            Dapper增删改
            </summary>
            <param name="sql"></param>
            <param name="parametere"></param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Tools.DapperHelper.DoTransaction(System.Collections.Generic.List{System.Object})">
            <summary>
            å¢žåŠ ï¼Œåˆ é™¤ï¼Œä¿®æ”¹ä½¿ç”¨çš„ äº‹åŠ¡æ–¹æ³•  Sqllist为依次执行
            </summary>
            <param name="sqlList"></param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Tools.DapperHelper.insertReturnId(System.String,System.Object,System.String)">
            <summary>
            Dapper插入 è¿”回自增主键Id
            </summary>
            <param name="sql"></param>
            <param name="parameter"></param>
            <param name="tableName">待插入数据的表名</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Tools.DataOperator.ExecuteSqlTran(System.Collections.Generic.List{System.String},System.Data.SqlClient.SqlParameter[])">
            <summary>
            æ‰§è¡Œå¤šæ¡SQL语句,实现数据库事务。
            </summary>
            <param name="sql">多条SQL语句</param>
            <returns>影响的记录数</returns>
        </member>
        <member name="M:VueWebApi.Tools.DBHelper.GetTable(System.String)">
            <summary>
            èŽ·å–DataTable
            </summary>
            <param name="sql">传入SQL语句</param>
            <returns>返回DataTable</returns>
        </member>
        <member name="M:VueWebApi.Tools.DBHelper.GetTable(System.String,System.Data.SqlClient.SqlParameter[])">
            <summary>
            èŽ·å–DataTable
            </summary>
            <param name="sql">传入SQL语句</param>
            <param name="parameters">SqlParameter å‚æ•°</param>
            <returns>返回DataTable</returns>
        </member>
        <member name="M:VueWebApi.Tools.DBHelper.GetData(System.String,System.Data.SqlClient.SqlParameter[])">
            <summary>
            Dataset获取数据表
            </summary>
            <param name="sql"></param>
            <param name="parameters"></param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Tools.DBHelper.GetCount(System.String)">
            <summary>
            èŽ·å–æ•°æ®è¡Œæ•°,如果出错返回"-1"
            </summary>
            <param name="sql">传入SQL语句</param>
            <returns>如果出错返回"-1"</returns>
        </member>
        <member name="M:VueWebApi.Tools.DBHelper.Executesqltran(System.Collections.Generic.List{System.String},System.Data.SqlClient.SqlParameter[])">
            <summary>
            æ‰§è¡Œå¤šæ¡sql语句的事物
            </summary>
            <param name="list"></param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Tools.DBHelper.GetCount(System.String,System.Data.SqlClient.SqlParameter[])">
            <summary>
            èŽ·å–æ•°æ®è¡Œæ•°,如果出错返回"-1"
            </summary>
            <param name="sql">传入SQL语句</param>
            <param name="parameters">SqlParameter å‚æ•°</param>
            <returns>如果出错返回"-1"</returns>
        </member>
        <member name="M:VueWebApi.Tools.DBHelper.GetObject(System.String)">
            <summary>
            èŽ·å–è¡¨æ ¼ç¬¬ä¸€è¡Œç¬¬ä¸€åˆ—
            </summary>
            <param name="sql">传入SQL语句</param>
            <returns>如果出错返回"null"</returns>
        </member>
        <member name="M:VueWebApi.Tools.DBHelper.GetObject(System.String,System.Data.SqlClient.SqlParameter[])">
            <summary>
            èŽ·å–è¡¨æ ¼ç¬¬ä¸€è¡Œç¬¬ä¸€åˆ—
            </summary>
            <param name="sql">传入SQL语句</param>
            <param name="parameters">SqlParameter å‚æ•°</param>
            <returns>返回Object</returns>
        </member>
        <member name="M:VueWebApi.Tools.DBHelper.ExecuteSql(System.String)">
            <summary>
            æ‰§è¡ŒSQL语句返回是否成功
            </summary>
            <param name="sql">传入SQL语句</param>
            <returns>返回是否成功</returns>
        </member>
        <member name="M:VueWebApi.Tools.DBHelper.ExecuteSql(System.String,System.Data.SqlClient.SqlParameter[])">
            <summary>
            æ‰§è¡ŒSQL语句返回是否成功
            </summary>
            <param name="sql">传入SQL语句</param>
            <param name="parameters">SqlParameter å‚æ•°</param>
            <returns>返回是否成功</returns>
        </member>
        <member name="M:VueWebApi.Tools.DBHelper.ExecuteProduct(System.String,System.Data.SqlClient.SqlParameter[])">
            <summary>
            æ‰§è¡Œå­˜å‚¨è¿‡ç¨‹è¿”回返回值
            </summary>
            <param name="productName">存储过程名字</param>
            <param name="parameters">SqlParameter å‚æ•°</param>
            <returns>返回值Hash表</returns>
        </member>
        <member name="M:VueWebApi.Tools.DBHelper.ExecuteProductData(System.String,System.Data.SqlClient.SqlParameter[])">
            <summary>
            æ‰§è¡Œå­˜å‚¨è¿‡ç¨‹è¿”回返回值
            </summary>
            <param name="productName">存储过程名字</param>
            <param name="parameters">SqlParameter å‚æ•°</param>
            <returns>返回值Hash表</returns>
        </member>
        <member name="M:VueWebApi.Tools.DBHelper.ExecuteProductDataList(System.String,System.Data.SqlClient.SqlParameter[])">
            <summary>
            æ‰§è¡Œå­˜å‚¨è¿‡ç¨‹è¿”回返回值
            </summary>
            <param name="productName">存储过程名字</param>
            <param name="parameters">SqlParameter å‚æ•°</param>
            <returns>返回值Hash表</returns>
        </member>
        <member name="M:VueWebApi.Tools.DBHelper.executeProductList(System.String,System.Boolean,System.Data.SqlClient.SqlParameter[])">
            <summary>
            æ‰§è¡Œå­˜å‚¨è¿‡ç¨‹è¿”回返回值
            </summary>
            <param name="productName">存储过程名字</param>
            <param name="parameters">SqlParameter å‚æ•°</param>
            <returns>返回值List</returns>
        </member>
        <member name="M:VueWebApi.Tools.DBHelper.ExecuteProductbool(System.String,System.Data.SqlClient.SqlParameter[])">
            <summary>
            æ‰§è¡Œå­˜å‚¨è¿‡ç¨‹è¿”回返回值
            </summary>
            <param name="productName">存储过程名字</param>
            <param name="parameters">SqlParameter å‚æ•°</param>
            <returns>返回值DataTable表</returns>
        </member>
        <member name="M:VueWebApi.Tools.DBHelper.GetDataByPage(System.String,System.String,System.String,System.Int32,System.Int32,System.Int32,System.String,System.Int32@)">
            <summary>
            åˆ†é¡µæŸ¥è¯¢
            </summary>
            <param name="filename">表名</param>
            <param name="filename">需要返回的列</param>
            <param name="sortfilename">排序字段名</param>
            <param name="PageSize">页尺寸</param>
            <param name="PageIndex">页码</param>
            <param name="OrderType">设置排序类型, éž 0 å€¼åˆ™é™åº</param>
            <param name="strWhere">查询条件 (注意: ä¸è¦åŠ  where)</param>
            <param name="RecordCount">总记录</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Tools.DBHelper.GetDataByPage_V2(System.String,System.String,System.String,System.Int32,System.Int32,System.String,System.Int32@)">
            <summary>
            åˆ†é¡µæŸ¥è¯¢(支持JOIN)
            </summary>
            <param name="filename">表名</param>
            <param name="filename">需要返回的列</param>
            <param name="sortfilename">排序字段名(默认升序,降序需在排序字段名后面DESC关键字:sortField Desc)</param>
            <param name="PageSize">页尺寸</param>
            <param name="PageIndex">页码</param>
            <param name="strWhere">查询条件 (注意: ä¸è¦åŠ  where)</param>
            <param name="RecordCount">总记录</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Tools.DBHelper.GetDataByPage_V2_Join(System.String,System.String,System.String,System.Int32,System.Int32,System.String,System.Int32@)">
            <summary>
            åˆ†é¡µæŸ¥è¯¢(支持JOIN)
            </summary>
            <param name="filename">表名</param>
            <param name="filename">需要返回的列</param>
            <param name="sortfilename">排序字段名(默认升序,降序需在排序字段名后面DESC关键字:sortField Desc)</param>
            <param name="PageSize">页尺寸</param>
            <param name="PageIndex">页码</param>
            <param name="strWhere">查询条件 (注意: ä¸è¦åŠ  where)</param>
            <param name="RecordCount">总记录</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Tools.DBHelper.ParametersStrGet(System.Data.SqlClient.SqlParameter[])">
            <summary>
            [用于日志文本输出] å°†SqlParameter数组参数转成字符串.
            </summary>
            <param name="parameters">参数数组</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Tools.LogHelper.WriteLog(System.Exception)">
            <summary>
            è¾“出日志到Log4Net
            </summary>
            <param name="ex"></param>
        </member>
        <member name="F:VueWebApi.Tools.RedisHelper.RedisIpConnString">
            <summary>
            redis获取连接配置字符串
            </summary>
        </member>
        <member name="M:VueWebApi.Tools.RedisHelper.CreateManager(System.String[],System.String[])">
            <summary>
            ç¼“冲池
            </summary>
            <param name="readWriteHosts"></param>
            <param name="readOnlyHosts"></param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Tools.RedisHelper.#cctor">
            <summary>
            æž„造函数
            </summary>
            <param name="openPooledRedis">是否开启缓冲池</param>
        </member>
        <member name="M:VueWebApi.Tools.RedisHelper.Set``1(System.String,``0,System.Int32,System.Int32)">
            <summary>
            è®¾ç½®ç¼“å­˜
            </summary>
            <typeparam name="T"></typeparam>
            <param name="key">缓存建</param>
            <param name="t">缓存值</param>
            <param name="timeout">过期时间,单位秒,-1:不过期,0:默认过期时间</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Tools.RedisHelper.KeyExpire(System.String,System.Int32)">
            <summary>
            è®¾ç½®å¤±æ•ˆæ—¶é—´
            </summary>
            <param name="key"></param>
            <param name="expiry"></param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Tools.RedisHelper.Get``1(System.String,System.Int32)">
            <summary>
            èŽ·å–
            </summary>
            <typeparam name="T"></typeparam>
            <param name="key"></param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Tools.RedisHelper.Remove(System.String,System.Int32)">
            <summary>
            åˆ é™¤
            </summary>
            <param name="key"></param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Tools.RedisHelper.AddList``1(System.String,System.Collections.Generic.IEnumerable{``0},System.Int32)">
            <summary>
            æ ¹æ®IEnumerable数据添加链表
            </summary>
            <typeparam name="T"></typeparam>
            <param name="listId"></param>
            <param name="values"></param>
            <param name="timeout"></param>
        </member>
        <member name="M:VueWebApi.Tools.RedisHelper.AddEntityToList``1(System.String,``0,System.Int32,System.Int32)">
            <summary>
            æ·»åŠ å•ä¸ªå®žä½“åˆ°é“¾è¡¨ä¸­
            </summary>
            <typeparam name="T"></typeparam>
            <param name="listId"></param>
            <param name="Item"></param>
            <param name="timeout"></param>
        </member>
        <member name="M:VueWebApi.Tools.RedisHelper.GetList``1(System.String,System.Int32)">
            <summary>
            èŽ·å–é“¾è¡¨
            </summary>
            <typeparam name="T"></typeparam>
            <param name="listId"></param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Tools.RedisHelper.RemoveEntityFromList``1(System.String,``0,System.Int32)">
            <summary>
            åœ¨é“¾è¡¨ä¸­åˆ é™¤å•个实体
            </summary>
            <typeparam name="T"></typeparam>
            <param name="listId"></param>
            <param name="t"></param>
        </member>
        <member name="M:VueWebApi.Tools.RedisHelper.RemoveEntityFromList``1(System.String,System.Func{``0,System.Boolean})">
            <summary>
            æ ¹æ®lambada表达式删除符合条件的实体
            </summary>
            <typeparam name="T"></typeparam>
            <param name="listId"></param>
            <param name="func"></param>
        </member>
        <member name="M:VueWebApi.Tools.SeachEncode.EncodingSeach(System.String)">
            <summary>
            æ ¹æ®åŠŸèƒ½ç¼–ç èŽ·å–æœ€æ–°è§„åˆ™ç¼–ç 
            </summary>
            <param name="rightcode">功能编码</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Tools.SeachEncode.RightLocation(System.String,System.String)">
            <summary>
            æ ¹æ®è§’色编码查询功能菜单
            </summary>
            <param name="rolecode"></param>
            <param name="type"></param>
            <returns></returns>
        </member>
        <member name="T:VueWebApi.Util.ObjectValueParser`1">
            <summary>
            å€¼è½¬æ¢å™¨
            </summary>
            <typeparam name="T">指定值的类型</typeparam>
            <param name="obj">取值来源</param>
            <returns>返回指定类型的值</returns>
        </member>
        <member name="T:VueWebApi.Util.ObjectValueTryParser`1">
            <summary>
            å°è¯•将值转换成指定类型 è¿”回转换结果
            </summary>
            <typeparam name="T">指定值的类型</typeparam>
            <param name="obj">取值来源</param>
            <param name="valueOutput">若转换成功 åˆ™out转换结果 å¦åˆ™ out默认T类型值</param>
            <returns></returns>
        </member>
        <member name="T:VueWebApi.Util.StringValueParser`1">
            <summary>
            å°è¯•将值转换成指定类型 è¿”回转换结果
            </summary>
            <typeparam name="T">指定值的类型</typeparam>
            <param name="str">取值来源字符串</param>
            <returns>返回指定类型的值</returns>
        </member>
        <member name="T:VueWebApi.Util.StringValueTryParser`1">
            <summary>
            å°è¯•将值转换成指定类型 è¿”回转换成功与否
            </summary>
            <typeparam name="T">指定值的类型</typeparam>
            <param name="str">取值来源字符串</param>
            <param name="valueOutput">若转换成功 åˆ™out转换结果 å¦åˆ™ out默认T类型值</param>
            <returns></returns>
        </member>
        <member name="T:VueWebApi.Util.EntityHelper">
            <summary>
            å®žä½“帮助类
            </summary>
        </member>
        <member name="M:VueWebApi.Util.EntityHelper.GetObject(System.Data.DataRow,System.String)">
            <summary>
            ä»Žä¸€è¡Œæ•°æ®ä¸­å°è¯•获取指定列名的值
            </summary>
            <param name="dr">源数据行</param>
            <param name="columnName">指定列名</param>
            <returns>若指定的列名存在并有效则返回取到的对象,若指定列名不存在或者为无效数据则返回null</returns>
        </member>
        <member name="M:VueWebApi.Util.EntityHelper.GetT``1(System.Data.DataRow,System.String,``0,VueWebApi.Util.ObjectValueParser{``0})">
            <summary>
            ä»Žä¸€è¡Œæ•°æ®ä¸­å°è¯•获取指定引用类型的值
            </summary>
            <typeparam name="T">指定类型的值</typeparam>
            <param name="dr">源数据行</param>
            <param name="columnName">列名</param>
            <param name="defVal">列无效时返回的默认值</param>
            <param name="parser">值转换器 è‹¥ç»™å®šçš„值转换器为null,则使用as强制转换,若as转换为null åˆ™è¿”回默认值</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Util.EntityHelper.Get``1(System.Object,``0,VueWebApi.Util.ObjectValueParser{``0})">
            <summary>
            å°†å¯¹è±¡è½¬æ¢ä¸ºæŒ‡å®šç±»åž‹æ•°æ® è½¬æ¢å¤±è´¥è¿”回设置的默认值
            </summary>
            <typeparam name="T">指定的类型</typeparam>
            <param name="source">数据源</param>
            <param name="defVal">列无效时返回的默认值</param>
            <param name="parser">值转换器 è‹¥ç»™å®šçš„值转换器为null,则使用as强制转换,若as转换为null åˆ™è¿”回默认值</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Util.EntityHelper.TryGetT``1(System.Data.DataRow,System.String,``0,VueWebApi.Util.ObjectValueTryParser{``0})">
            <summary>
            ä»Žä¸€è¡Œæ•°æ®ä¸­å°è¯•获取指定引用类型的值
            </summary>
            <typeparam name="T">指定的类型</typeparam>
            <param name="dr">源数据行</param>
            <param name="columnName">列名</param>
            <param name="defVal">列无效时返回的默认值</param>
            <param name="parser">值转换器 è‹¥ç»™å®šçš„值转换器为null,则使用as强制转换,若as转换为null åˆ™è¿”回默认值</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Util.EntityHelper.TryGetT``1(System.Object,``0,VueWebApi.Util.ObjectValueTryParser{``0})">
            <summary>
            å°†å¯¹è±¡å°è¯•转换为指定类型的数据 è½¬æ¢å¤±è´¥è¿”回指定的默认值
            </summary>
            <typeparam name="T">指定的类型</typeparam>
            <param name="source">数据源</param>
            <param name="defVal">默认值</param>
            <param name="parser">值转换器 è‹¥ç»™å®šçš„值转换器为null,则使用as强制转换,若as转换为null åˆ™è¿”回默认值</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Util.EntityHelper.GetT``1(System.Data.DataRow,System.String,``0,VueWebApi.Util.StringValueParser{``0})">
            <summary>
            ä»Žä¸€è¡Œæ•°æ®ä¸­å°è¯•获取指定值类型的值
            </summary>
            <typeparam name="T">指定类型的值</typeparam>
            <param name="dr">源数据行</param>
            <param name="columnName">列名</param>
            <param name="defVal">列无效时返回的默认值</param>
            <param name="parser">值转换器</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Util.EntityHelper.GetT``1(System.Object,``0,VueWebApi.Util.StringValueParser{``0})">
            <summary>
            å°†å¯¹è±¡è½¬æ¢ä¸ºæŒ‡å®šç±»åž‹æ•°æ® è½¬æ¢å¤±è´¥è¿”回设置的默认值
            </summary>
            <typeparam name="T">指定的类型</typeparam>
            <param name="source">数据源</param>
            <param name="defVal">列无效时返回的默认值</param>
            <param name="parser">值转换器</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Util.EntityHelper.TryGetT``1(System.Data.DataRow,System.String,``0,VueWebApi.Util.StringValueTryParser{``0})">
            <summary>
            ä»Žä¸€è¡Œæ•°æ®ä¸­å°è¯•获取指定值类型的值
            </summary>
            <typeparam name="T">指定类型的值</typeparam>
            <param name="dr">源数据行</param>
            <param name="columnName">列名</param>
            <param name="defVal">列无效时返回的默认值</param>
            <param name="parser">值转换器</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Util.EntityHelper.TryGetT``1(System.Object,``0,VueWebApi.Util.StringValueTryParser{``0})">
            <summary>
            å°†å¯¹è±¡å°è¯•转换为指定类型的数据 è½¬æ¢å¤±è´¥è¿”回指定的默认值
            </summary>
            <typeparam name="T">指定的类型</typeparam>
            <param name="obj">数据源</param>
            <param name="defVal">默认值</param>
            <param name="parser">值转换器</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Util.EntityHelper.GetString(System.Data.DataRow,System.String,System.String)">
            <summary>
            ä»Žä¸€è¡Œæ•°æ®ä¸­å°è¯•获取字符串
            </summary>
            <param name="dr">源数据行</param>
            <param name="columnName">列名</param>
            <param name="defVal">列无效时返回的默认值</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Util.EntityHelper.GetString(System.Object,System.String)">
            <summary>
            èŽ·å–å­—ç¬¦ä¸² æ£€æµ‹  æ•°æ®æºä¸ºç©ºæ—¶è¿”回默认值
            </summary>
            <param name="source">数据源</param>
            <param name="defVal">默认值</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Util.EntityHelper.GetInt(System.Data.DataRow,System.String,System.Int32)">
            <summary>
            ä»Žä¸€è¡Œæ•°æ®ä¸­å°è¯•获取整数
            </summary>
            <param name="dr">源数据行</param>
            <param name="columnName">列名</param>
            <param name="defVal">列无效时返回的默认值</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Util.EntityHelper.GetInt(System.Object,System.Int32)">
            <summary>
            ä»Žæ•°æ®å‘˜èŽ·å–æ•´æ•°
            </summary>
            <param name="source">数据源</param>
            <param name="defVal">获取失败时的默认值</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Util.EntityHelper.GetDateTime(System.Data.DataRow,System.String,System.DateTime)">
            <summary>
            ä»Žä¸€è¡Œæ•°æ®ä¸­å°è¯•获取日期
            </summary>
            <param name="dr">源数据行</param>
            <param name="columnName">列名</param>
            <param name="defVal">列无效时返回的默认值</param>
            <returns></returns>
        </member>
        <member name="M:VueWebApi.Util.EntityHelper.GetDateTime(System.Object,System.DateTime)">
            <summary>
            ä»Žæ•°æ®æºä¸­ èŽ·å–æ—¥æœŸ
            </summary>
            <param name="source">数据源</param>
            <param name="defVal">获取失败时的默认值</param>
            <returns></returns>
        </member>
        <member name="T:ControllerGroupAttribute">
            <summary>
            Controller描述信息
            </summary>
        </member>
        <member name="P:ControllerGroupAttribute.GroupName">
            <summary>
            å½“前Controller所属模块 è¯·ç”¨ä¸­æ–‡
            </summary>
        </member>
        <member name="P:ControllerGroupAttribute.Useage">
            <summary>
            å½“前controller用途    è¯·ç”¨ä¸­æ–‡
            </summary>
        </member>
        <member name="M:ControllerGroupAttribute.#ctor(System.String,System.String)">
            <summary>
             Controller描述信息 æž„造
            </summary>
            <param name="groupName">模块名称</param>
            <param name="useage">当前controller用途</param>
        </member>
        <member name="T:HiddenApiAttribute">
            <summary>
            éšè—æŽ¥å£ï¼Œä¸ç”Ÿæˆåˆ°swagger文档展示
            </summary>
            <seealso cref="T:System.Attribute" />
        </member>
        <member name="T:HiddenApiFilter">
            <summary>
            Class HiddenApiFilter.
            </summary>
            <seealso cref="T:Swashbuckle.Swagger.IDocumentFilter" />
        </member>
        <member name="M:HiddenApiFilter.Apply(Swashbuckle.Swagger.SwaggerDocument,Swashbuckle.Swagger.SchemaRegistry,System.Web.Http.Description.IApiExplorer)">
            <summary>
            é‡å†™Apply方法,移除隐藏接口的生成
            </summary>
            <param name="swaggerDoc">swagger文档文件</param>
            <param name="schemaRegistry"></param>
            <param name="apiExplorer">api接口集合</param>
        </member>
        <member name="T:HttpAuthHeaderFilter">
            <summary>
            swagger å¢žåŠ  AUTH é€‰é¡¹
            </summary>
        </member>
        <member name="M:HttpAuthHeaderFilter.Apply(Swashbuckle.Swagger.Operation,Swashbuckle.Swagger.SchemaRegistry,System.Web.Http.Description.ApiDescription)">
            <summary>
            åº”用
            </summary>
            <param name="operation"></param>
            <param name="schemaRegistry"></param>
            <param name="apiDescription"></param>
        </member>
        <member name="T:SwaggerControllerDescProvider">
            <summary>
            swagger显示控制器的描述
            </summary>
        </member>
        <member name="M:SwaggerControllerDescProvider.#ctor(Swashbuckle.Swagger.ISwaggerProvider,System.String)">
            <summary>
            </summary>
            <param name="swaggerProvider"></param>
            <param name="xml">xml文档路径</param>
        </member>
        <member name="M:SwaggerControllerDescProvider.GetSwagger(System.String,System.String)">
            <summary>
            Gets the swagger.
            </summary>
            <param name="rootUrl">The root URL.</param>
            <param name="apiVersion">The API version.</param>
            <returns>SwaggerDocument.</returns>
        </member>
        <member name="M:SwaggerControllerDescProvider.GetControllerDesc">
            <summary>
            ä»ŽAPI文档中读取控制器描述
            </summary>
            <returns>所有控制器描述</returns>
        </member>
    </members>
</doc>
VueWebApi/obj/Release/TransformWebConfig/original/Web.config
@@ -40,9 +40,9 @@
      </security>
      <httpProtocol>
          <customHeaders>
              <add name="Access-Control-Allow-Origin" value="*"/>
              <add name="Access-Control-Allow-Headers" value="Content-Type"/>
              <add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS"/>
              <add name="Access-Control-Allow-Origin" value="*" />
              <add name="Access-Control-Allow-Headers" value="Content-Type" />
              <add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />
          </customHeaders>
      </httpProtocol>
      <modules runAllManagedModulesForAllRequests="true"/>
VueWebApi/obj/Release/VueWebApi.csproj.CopyComplete
VueWebApi/obj/Release/VueWebApi.csproj.CoreCompileInputs.cache
@@ -1 +1 @@
cd55dbd70445fa871c6047427cccf280c8bf06cf
8fb0bfebf62e6c7d74c8be578229f48fb1a38247
VueWebApi/obj/Release/VueWebApi.csproj.FileListAbsolute.txt
@@ -26,14 +26,11 @@
D:\新凯迪MES\VueWebApi\VueWebApi\bin\roslyn\System.Diagnostics.FileVersionInfo.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\roslyn\System.Diagnostics.StackTrace.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\roslyn\System.Globalization.Calendars.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\roslyn\System.IO.Compression.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\roslyn\System.IO.Compression.ZipFile.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\roslyn\System.IO.FileSystem.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\roslyn\System.IO.FileSystem.Primitives.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\roslyn\System.Net.Http.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\roslyn\System.Net.Sockets.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\roslyn\System.Reflection.Metadata.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\roslyn\System.Runtime.InteropServices.RuntimeInformation.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\roslyn\System.Security.Cryptography.Algorithms.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\roslyn\System.Security.Cryptography.Encoding.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\roslyn\System.Security.Cryptography.Primitives.dll
@@ -50,45 +47,8 @@
D:\新凯迪MES\VueWebApi\VueWebApi\bin\roslyn\vbc.rsp
D:\新凯迪MES\VueWebApi\VueWebApi\bin\roslyn\VBCSCompiler.exe
D:\新凯迪MES\VueWebApi\VueWebApi\bin\roslyn\VBCSCompiler.exe.config
D:\新凯迪MES\VueWebApi\VueWebApi\bin\Antlr3.Runtime.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\Dapper.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\JWT.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\log4net.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\Microsoft.Bcl.AsyncInterfaces.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\Microsoft.Web.Infrastructure.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\Newtonsoft.Json.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\Pipelines.Sockets.Unofficial.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\ServiceStack.Common.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\ServiceStack.Interfaces.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\ServiceStack.Redis.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\ServiceStack.Text.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\StackExchange.Redis.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\Swashbuckle.Core.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\System.Buffers.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\System.Diagnostics.PerformanceCounter.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\System.IO.Compression.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\System.IO.Pipelines.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\System.Memory.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\System.Net.Http.Formatting.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\System.Numerics.Vectors.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\System.Runtime.CompilerServices.Unsafe.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\System.Runtime.InteropServices.RuntimeInformation.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\System.Threading.Channels.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\System.Threading.Tasks.Extensions.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\System.Web.Cors.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\System.Web.Helpers.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\System.Web.Http.Cors.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\System.Web.Http.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\System.Web.Http.WebHost.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\System.Web.Mvc.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\System.Web.Optimization.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\System.Web.Razor.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\System.Web.WebPages.Deployment.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\System.Web.WebPages.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\System.Web.WebPages.Razor.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\WebActivatorEx.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\WebGrease.dll
D:\新凯迪MES\VueWebApi\VueWebApi\bin\Dapper.xml
D:\新凯迪MES\VueWebApi\VueWebApi\bin\JWT.pdb
D:\新凯迪MES\VueWebApi\VueWebApi\bin\JWT.xml
@@ -137,3 +97,4 @@
D:\新凯迪MES\VueWebApi\VueWebApi\obj\Release\VueWebApi.dll
D:\新凯迪MES\VueWebApi\VueWebApi\obj\Release\VueWebApi.pdb
D:\新凯迪MES\VueWebApi\VueWebApi\obj\Release\VueWebApi.csproj.AssemblyReference.cache
D:\新凯迪MES\VueWebApi\VueWebApi\bin\System.Net.Http.dll
VueWebApi/obj/Release/VueWebApi.pdb
Binary files differ
VueWebApi/packages.config
@@ -29,11 +29,14 @@
  <package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net461" />
  <package id="Modernizr" version="2.8.3" targetFramework="net461" />
  <package id="Newtonsoft.Json" version="12.0.2" targetFramework="net461" />
  <package id="NPOI" version="2.5.6" targetFramework="net461" />
  <package id="Pipelines.Sockets.Unofficial" version="2.2.2" targetFramework="net461" />
  <package id="Portable.BouncyCastle" version="1.8.9" targetFramework="net461" />
  <package id="ServiceStack.Common" version="5.0.0" targetFramework="net461" />
  <package id="ServiceStack.Interfaces" version="5.0.0" targetFramework="net461" />
  <package id="ServiceStack.Redis" version="5.0.0" targetFramework="net461" />
  <package id="ServiceStack.Text" version="5.0.0" targetFramework="net461" />
  <package id="SharpZipLib" version="1.3.3" targetFramework="net461" />
  <package id="StackExchange.Redis" version="2.5.61" targetFramework="net461" />
  <package id="Swashbuckle" version="5.6.0" targetFramework="net461" />
  <package id="Swashbuckle.Core" version="5.6.0" targetFramework="net461" />
packages/NPOI.2.5.6/.signature.p7s
Binary files differ
packages/NPOI.2.5.6/LICENSE
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,177 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction, and
distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by the copyright
owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all other entities
that control, are controlled by, or are under common control with that entity.
For the purposes of this definition, "control" means (i) the power, direct or
indirect, to cause the direction or management of such entity, whether by
contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity exercising
permissions granted by this License.
"Source" form shall mean the preferred form for making modifications, including
but not limited to software source code, documentation source, and configuration
files.
"Object" form shall mean any form resulting from mechanical transformation or
translation of a Source form, including but not limited to compiled object code,
generated documentation, and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or Object form, made
available under the License, as indicated by a copyright notice that is included
in or attached to the work (an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object form, that
is based on (or derived from) the Work and for which the editorial revisions,
annotations, elaborations, or other modifications represent, as a whole, an
original work of authorship. For the purposes of this License, Derivative Works
shall not include works that remain separable from, or merely link (or bind by
name) to the interfaces of, the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including the original version
of the Work and any modifications or additions to that Work or Derivative Works
thereof, that is intentionally submitted to Licensor for inclusion in the Work
by the copyright owner or by an individual or Legal Entity authorized to submit
on behalf of the copyright owner. For the purposes of this definition,
"submitted" means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems, and
issue tracking systems that are managed by, or on behalf of, the Licensor for
the purpose of discussing and improving the Work, but excluding communication
that is conspicuously marked or otherwise designated in writing by the copyright
owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity on behalf
of whom a Contribution has been received by Licensor and subsequently
incorporated within the Work.
2. Grant of Copyright License.
Subject to the terms and conditions of this License, each Contributor hereby
grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free,
irrevocable copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the Work and such
Derivative Works in Source or Object form.
3. Grant of Patent License.
Subject to the terms and conditions of this License, each Contributor hereby
grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free,
irrevocable (except as stated in this section) patent license to make, have
made, use, offer to sell, sell, import, and otherwise transfer the Work, where
such license applies only to those patent claims licensable by such Contributor
that are necessarily infringed by their Contribution(s) alone or by combination
of their Contribution(s) with the Work to which such Contribution(s) was
submitted. If You institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work or a
Contribution incorporated within the Work constitutes direct or contributory
patent infringement, then any patent licenses granted to You under this License
for that Work shall terminate as of the date such litigation is filed.
4. Redistribution.
You may reproduce and distribute copies of the Work or Derivative Works thereof
in any medium, with or without modifications, and in Source or Object form,
provided that You meet the following conditions:
You must give any other recipients of the Work or Derivative Works a copy of
this License; and
You must cause any modified files to carry prominent notices stating that You
changed the files; and
You must retain, in the Source form of any Derivative Works that You distribute,
all copyright, patent, trademark, and attribution notices from the Source form
of the Work, excluding those notices that do not pertain to any part of the
Derivative Works; and
If the Work includes a "NOTICE" text file as part of its distribution, then any
Derivative Works that You distribute must include a readable copy of the
attribution notices contained within such NOTICE file, excluding those notices
that do not pertain to any part of the Derivative Works, in at least one of the
following places: within a NOTICE text file distributed as part of the
Derivative Works; within the Source form or documentation, if provided along
with the Derivative Works; or, within a display generated by the Derivative
Works, if and wherever such third-party notices normally appear. The contents of
the NOTICE file are for informational purposes only and do not modify the
License. You may add Your own attribution notices within Derivative Works that
You distribute, alongside or as an addendum to the NOTICE text from the Work,
provided that such additional attribution notices cannot be construed as
modifying the License.
You may add Your own copyright statement to Your modifications and may provide
additional or different license terms and conditions for use, reproduction, or
distribution of Your modifications, or for any such Derivative Works as a whole,
provided Your use, reproduction, and distribution of the Work otherwise complies
with the conditions stated in this License.
5. Submission of Contributions.
Unless You explicitly state otherwise, any Contribution intentionally submitted
for inclusion in the Work by You to the Licensor shall be under the terms and
conditions of this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify the terms of
any separate license agreement you may have executed with Licensor regarding
such Contributions.
6. Trademarks.
This License does not grant permission to use the trade names, trademarks,
service marks, or product names of the Licensor, except as required for
reasonable and customary use in describing the origin of the Work and
reproducing the content of the NOTICE file.
7. Disclaimer of Warranty.
Unless required by applicable law or agreed to in writing, Licensor provides the
Work (and each Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied,
including, without limitation, any warranties or conditions of TITLE,
NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are
solely responsible for determining the appropriateness of using or
redistributing the Work and assume any risks associated with Your exercise of
permissions under this License.
8. Limitation of Liability.
In no event and under no legal theory, whether in tort (including negligence),
contract, or otherwise, unless required by applicable law (such as deliberate
and grossly negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special, incidental,
or consequential damages of any character arising as a result of this License or
out of the use or inability to use the Work (including but not limited to
damages for loss of goodwill, work stoppage, computer failure or malfunction, or
any and all other commercial damages or losses), even if such Contributor has
been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability.
While redistributing the Work or Derivative Works thereof, You may choose to
offer, and charge a fee for, acceptance of support, warranty, indemnity, or
other liability obligations and/or rights consistent with this License. However,
in accepting such obligations, You may act only on Your own behalf and on Your
sole responsibility, not on behalf of any other Contributor, and only if You
agree to indemnify, defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason of your
accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work
To apply the Apache License to your work, attach the following boilerplate
notice, with the fields enclosed by brackets "{}" replaced with your own
identifying information. (Don't include the brackets!) The text should be
enclosed in the appropriate comment syntax for the file format. We also
recommend that a file or class name and description of purpose be included on
the same "printed page" as the copyright notice for easier identification within
third-party archives.
packages/NPOI.2.5.6/NPOI.2.5.6.nupkg
Binary files differ
packages/NPOI.2.5.6/Read Me.txt
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,137 @@
================
* Introduction *
================
This project is the .NET port of POI project. With NPOI, you can read/write Excel and Word files easily. It has a wide application.
For example, you can use it a to generate a Excel report without Microsoft Office suite installed on your
server and more efficient than call Microsoft Excel ActiveX at background; you can also use it to extract
text from Office documents to help you implement full-text indexing feature (most of time this feature is
used to create search engines).
=========================
* Nissl Introduction *
=========================
NPOI was used to be maintained by Neuzilla ( Tony's first startup company).  After Neuzilla is closed in 2018, Nissl Lab maintains NPOI.
Nissl Lab is a NGO org created by Nissl LLC. The trademake NPOI is hold by Nissl in order to avoid abuse.
==================
*  NPOI Source Code *
==================
https://github.com/nissl-lab/npoi/
==================
* LICENSE COMPLIANCE *
==================
You are NOT allowed to remove NPOI logo or Nissl/Neuzilla brand (even text). This is a must of Apache license. This shows basic respects to the previous contributors of NPOI.
You must state that you are using NPOI no matter you are creating a commercial product or an open source project.
======================
* System Requirement *
======================
VS2015 and above
medium trust environment in ASP.NET
=================
*  Nissl in social network *
=================
Linkedin: https://www.linkedin.com/company/nissl
Github: https://github.com/nissl-lab
================
* Team Members *
================
Tony Qu - coodinator, developer
-------------------------------
From: Shanghai, China
Participated since Sep, 2008
Time Zone: GMT+8
--------------------------------------------------------------------------------
NPOI 1.2.1
--------------------------------------------------------------------------------
Huseyin Turfekcilerli - developer
--------------------
From: Istanbul, Turkey
Participated since Nov, 2008
Time Zone: GMT+2
Main Contribution: POIFS Browser 1.0
aTao Xiang - Technical writer
-----------
From: China
Participated since Aug, 2009
Time Zone: GMT+8
Main Contribution: NPOI 1.2 Chinese Tutorial
--------------------------------------------------------------------------------
NPOI 1.2.3 - NPOI 1.2.5
--------------------------------------------------------------------------------
Antony - developer
------------------------------
From: Guangzhou, China
Time Zone: GMT+8
Main Contribution: main code,bug fixing ,Excel2Html, Word2Html
Christian Leutloff - developer
------------------------------
From: Germany
Time Zone: GMT+1
Main Contribution: fix FXCop warnings, OOXML
Jeff Stedfast - developer
------------------------------
From: Cambridge, MA, USA
Time Zone: GMT
Main contribution: Mono version of NPOI, naming conversion
Leon Wang - developer
-----------------------------
From: Xi'an, China
Time Zone: GMT+8
Main contribution: NPOIFS/POIFS
NPOI 2.0
--------------------------------------------------------------------------------
Tony Qu - chief developer
-------------------------------
From: Shanghai, China
Time Zone: GMT+8
Main Contribution: OpenXml4Net, OpenXmlFormats, NPOI.XSSF, NPOI.XWPF implementation
Antony - developer
------------------------------
From: Guangzhou, China
Time Zone: GMT+8
Main Contribution: XWPF implementation, OpenXmlFormats
Christian Leutloff - developer
------------------------------
From: Germany
Time Zone: GMT+1
Main Contribution: OpenXmlFormats, Excel 2007 comment read
Jeff Stedfast - developer
------------------------------
From: Cambridge, MA, USA
Time Zone: GMT
Main contribution: Mono version of NPOI, enumeration changes and compilation optimization
Paul Kratt - developer
------------------------------
From: Greater Milwaukee Area, Wisconsin, USA
Time Zone: GMT
Main contribution: CopyTo, CopySheet functions in HSSFSheet
NPOI 2.1
--------------------------------------------------------------------------------
Tony Qu - main contributor
Antony - fix some poi bugs
Phil Rykoff - developer
------------------------------
Main contribution: XSSF bug fixing and feature implement
NPOI 2.2 ~ 2.5.2
--------------------------------------------------------------------------------
Antony
Tony Qu
packages/NPOI.2.5.6/lib/net45/NPOI.OOXML.XML
¶Ô±ÈÐÂÎļþ
ÎļþÌ«´ó
packages/NPOI.2.5.6/lib/net45/NPOI.OOXML.pdb
Binary files differ
packages/NPOI.2.5.6/lib/net45/NPOI.OpenXml4Net.XML
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,3189 @@
<?xml version="1.0"?>
<doc>
    <assembly>
        <name>NPOI.OpenXml4Net</name>
    </assembly>
    <members>
        <member name="T:NPOI.OpenXml4Net.OPC.CertificateEmbeddingOption">
             Specifies the location where the X.509 certificate that is used in signing is stored.
             @author Julien Chable
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.CertificateEmbeddingOption.IN_CERTIFICATE_PART">
            The certificate is embedded in its own PackagePart.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.CertificateEmbeddingOption.IN_SIGNATURE_PART">
            The certificate is embedded in the SignaturePart that is created for the signature being added.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.CertificateEmbeddingOption.NOT_EMBEDDED">
            The certificate in not embedded in the package.
        </member>
        <member name="T:NPOI.OpenXml4Net.OPC.Configuration">
             Storage class for configuration storage parameters.
             TODO xml syntax checking is no longer done with DOM4j parser -> remove the schema or do it ?
             @author CDubettier, Julen Chable
             @version 1.0
        </member>
        <member name="T:NPOI.OpenXml4Net.OPC.ContentTypes">
             Open Packaging Convention content types (see Annex F : Standard Namespaces
             and Content Types).
             @author CDubettier define some constants, Julien Chable
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.ContentTypes.CORE_PROPERTIES_PART">
            Core Properties part.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.ContentTypes.DIGITAL_SIGNATURE_CERTIFICATE_PART">
            Digital Signature Certificate part.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.ContentTypes.DIGITAL_SIGNATURE_ORIGIN_PART">
            Digital Signature Origin part.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.ContentTypes.DIGITAL_SIGNATURE_XML_SIGNATURE_PART">
            Digital Signature XML Signature part.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.ContentTypes.RELATIONSHIPS_PART">
            Relationships part.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.ContentTypes.CUSTOM_XML_PART">
            Custom XML part.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.ContentTypes.PLAIN_OLD_XML">
            Plain old xml. Note - OOXML uses application/xml, and not text/xml!
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.ContentTypes.IMAGE_TIFF">
             TIFF image format.
             @see <a href="http://partners.adobe.com/public/developer/tiff/index.html#spec">
             http://partners.adobe.com/public/developer/tiff/index.html#spec</a>
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.ContentTypes.IMAGE_PICT">
             Pict image format.
             @see <a href="http://developer.apple.com/documentation/mac/QuickDraw/QuickDraw-2.html">
             http://developer.apple.com/documentation/mac/QuickDraw/QuickDraw-2.html</a>
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.ContentTypes.XML">
            XML file.
        </member>
        <member name="T:NPOI.OpenXml4Net.OPC.EncryptionOption">
             Specifies the encryption option for parts in a Package.
             @author Julien Chable
             @version 0.1
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.EncryptionOption.NONE">
            No encryption.
        </member>
        <!-- Badly formed XML comment ignored for member "T:NPOI.OpenXml4Net.OPC.Internal.ContentType" -->
        <member name="F:NPOI.OpenXml4Net.OPC.Internal.ContentType.type">
            Type in Type/Subtype.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.Internal.ContentType.subType">
            Subtype
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.Internal.ContentType.p">
            Parameters
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.Internal.ContentType.patternTypeSubType">
            Media type compiled pattern for parameters.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.Internal.ContentType.patternTypeSubTypeParams">
            Media type compiled pattern, with parameters.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.Internal.ContentType.patternParams">
            Pattern to match on just the parameters part, to work
            around the Java Regexp group capture behaviour
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.ContentType.#ctor(System.String)">
             Constructor. Check the input with the RFC 2616 grammar.
             @param contentType
                        The content type to store.
             @throws InvalidFormatException
                         If the specified content type is not valid with RFC 2616.
        </member>
        <member name="P:NPOI.OpenXml4Net.OPC.Internal.ContentType.SubType">
             Get the subtype.
             @return The subtype of this content type.
        </member>
        <member name="P:NPOI.OpenXml4Net.OPC.Internal.ContentType.Type">
             Get the type.
             @return The type of this content type.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.ContentType.HasParameters">
            Does this content type have any parameters associated with it?
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.ContentType.GetParameterKeys">
            Return the parameter keys
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.ContentType.GetParameter(System.String)">
             Gets the value associated to the specified key.
             @param key
                        The key of the key/value pair.
             @return The value associated to the specified key.
        </member>
        <member name="T:NPOI.OpenXml4Net.OPC.Internal.ContentTypeManager">
            Manage package content types ([Content_Types].xml part).
            @author Julien Chable
            @version 1.0
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.Internal.ContentTypeManager.CONTENT_TYPES_PART_NAME">
            Content type part name.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.Internal.ContentTypeManager.TYPES_NAMESPACE_URI">
            Content type namespace
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.Internal.ContentTypeManager.container">
            Reference to the package using this content type manager.
        </member>
        <!-- Badly formed XML comment ignored for member "F:NPOI.OpenXml4Net.OPC.Internal.ContentTypeManager.defaultContentType" -->
        <member name="F:NPOI.OpenXml4Net.OPC.Internal.ContentTypeManager.overrideContentType">
            Override content type tree.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.ContentTypeManager.#ctor(System.IO.Stream,NPOI.OpenXml4Net.OPC.OPCPackage)">
            Constructor. Parses the content of the specified input stream.
            @param in
                       If different of <i>null</i> then the content types part is
                       retrieve and parse.
            @throws InvalidFormatException
                        If the content types part content is not valid.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.ContentTypeManager.AddContentType(NPOI.OpenXml4Net.OPC.PackagePartName,System.String)">
            Build association extention-> content type (will be stored in
            [Content_Types].xml) for example ContentType="image/png" Extension="png"
            <p>
            [M2.8]: When adding a new part to a package, the package implementer
            shall ensure that a content type for that part is specified in the
            Content Types stream; the package implementer shall perform the steps
            described in &#167;9.1.2.3:
            </p><p>
            1. Get the extension from the part name by taking the substring to the
            right of the rightmost occurrence of the dot character (.) from the
            rightmost segment.
            </p><p>
            2. If a part name has no extension, a corresponding Override element
            shall be added to the Content Types stream.
            </p><p>
            3. Compare the resulting extension with the values specified for the
            Extension attributes of the Default elements in the Content Types stream.
            The comparison shall be case-insensitive ASCII.
            </p><p>
            4. If there is a Default element with a matching Extension attribute,
            then the content type of the new part shall be compared with the value of
            the ContentType attribute. The comparison might be case-sensitive and
            include every character regardless of the role it plays in the
            content-type grammar of RFC 2616, or it might follow the grammar of RFC
            2616.
            </p><p>
            a. If the content types match, no further action is required.
            </p><p>
            b. If the content types do not match, a new Override element shall be
            added to the Content Types stream. .
            </p><p>
            5. If there is no Default element with a matching Extension attribute, a
            new Default element or Override element shall be added to the Content
            Types stream.
            </p>
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.ContentTypeManager.AddOverrideContentType(NPOI.OpenXml4Net.OPC.PackagePartName,System.String)">
            Add an override content type for a specific part.
            @param partName
                       Name of the part.
            @param contentType
                       Content type of the part.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.ContentTypeManager.AddDefaultContentType(System.String,System.String)">
            Add a content type associated with the specified extension.
            @param extension
                       The part name extension to bind to a content type.
            @param contentType
                       The content type associated with the specified extension.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.ContentTypeManager.RemoveContentType(NPOI.OpenXml4Net.OPC.PackagePartName)">
            <p>
            Delete a content type based on the specified part name. If the specified
            part name is register with an override content type, then this content
            type is remove, else the content type is remove in the default content
            type list if it exists and if no part is associated with it yet.
            </p><p>
            Check rule M2.4: The package implementer shall require that the Content
            Types stream contain one of the following for every part in the package:
            One matching Default element One matching Override element Both a
            matching Default element and a matching Override element, in which case
            the Override element takes precedence.
            </p>
            @param partName
                       The part URI associated with the override content type to
                       delete.
            @exception InvalidOperationException
                           Throws if
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.ContentTypeManager.IsContentTypeRegister(System.String)">
            Check if the specified content type is already register.
            @param contentType
                       The content type to check.
            @return <code>true</code> if the specified content type is already
                    register, then <code>false</code>.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.ContentTypeManager.GetContentType(NPOI.OpenXml4Net.OPC.PackagePartName)">
            Get the content type for the specified part, if any.
            <p>
            Rule [M2.9]: To get the content type of a part, the package implementer
            shall perform the steps described in &#167;9.1.2.4:
            </p><p>
            1. Compare the part name with the values specified for the PartName
            attribute of the Override elements. The comparison shall be
            case-insensitive ASCII.
            </p><p>
            2. If there is an Override element with a matching PartName attribute,
            return the value of its ContentType attribute. No further action is
            required.
            </p><p>
            3. If there is no Override element with a matching PartName attribute,
            then a. Get the extension from the part name by taking the substring to
            the right of the rightmost occurrence of the dot character (.) from the
            rightmost segment. b. Check the Default elements of the Content Types
            stream, comparing the extension with the value of the Extension
            attribute. The comparison shall be case-insensitive ASCII.
            </p><p>
            4. If there is a Default element with a matching Extension attribute,
            return the value of its ContentType attribute. No further action is
            required.
            </p><p>
            5. If neither Override nor Default elements with matching attributes are
            found for the specified part name, the implementation shall not map this
            part name to a part.
            </p>
            @param partName
                       The URI part to check.
            @return The content type associated with the URI (in case of an override
                    content type) or the extension (in case of default content type),
                    else <code>null</code>.
            @exception OpenXml4NetRuntimeException
                           Throws if the content type manager is not able to find the
                           content from an existing part.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.ContentTypeManager.ClearAll">
            Clear all content types.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.ContentTypeManager.ClearOverrideContentTypes">
            Clear all override content types.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.ContentTypeManager.ParseContentTypesFile(System.IO.Stream)">
            Parse the content types part.
            @throws InvalidFormatException
                        Throws if the content type doesn't exist or the XML format is
                        invalid.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.ContentTypeManager.Save(System.IO.Stream)">
            Save the contents type part.
            @param outStream
                       The output stream use to save the XML content of the content
                       types part.
            @return <b>true</b> if the operation success, else <b>false</b>.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.ContentTypeManager.AppendSpecificTypes(System.Xml.XmlDocument,System.Xml.XmlElement,System.Collections.Generic.KeyValuePair{NPOI.OpenXml4Net.OPC.PackagePartName,System.String})">
            Use to Append specific type XML elements, use by the save() method.
            @param root
                       XML parent element use to Append this override type element.
            @param entry
                       The values to Append.
            @see #save(java.io.OutputStream)
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.ContentTypeManager.AppendDefaultType(System.Xml.XmlDocument,System.Xml.XmlElement,System.Collections.Generic.KeyValuePair{System.String,System.String})">
            Use to Append default types XML elements, use by the save() metid.
            @param root
                       XML parent element use to Append this default type element.
            @param entry
                       The values to Append.
            @see #save(java.io.OutputStream)
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.ContentTypeManager.SaveImpl(System.Xml.XmlDocument,System.IO.Stream)">
            Specific implementation of the save method. Call by the save() method,
            call before exiting.
            @param out
                       The output stream use to write the content type XML.
        </member>
        <member name="T:NPOI.OpenXml4Net.OPC.Internal.FileHelper">
             Provide useful method to manage file.
             @author Julien Chable
             @version 0.1
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.FileHelper.GetDirectory(System.String)">
             Get the directory part of the specified file path.
             @param f
                        File to process.
             @return The directory path from the specified
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.FileHelper.CopyFile(System.String,System.String)">
             Copy a file.
             @param in
                        The source file.
             @param out
                        The target location.
             @throws IOException
                         If an I/O error occur.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.FileHelper.GetFilename(System.String)">
            Get file name from the specified File object.
        </member>
        <member name="T:NPOI.OpenXml4Net.OPC.Internal.Marshallers.DefaultMarshaller">
             Default marshaller that specified that the part is responsible to marshall its content.
             @author Julien Chable
             @version 1.0
             @see PartMarshaller
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.Marshallers.DefaultMarshaller.Marshall(NPOI.OpenXml4Net.OPC.PackagePart,System.IO.Stream)">
             Save part in the output stream by using the save() method of the part.
             @throws OpenXml4NetException
                         If any error occur.
        </member>
        <member name="T:NPOI.OpenXml4Net.OPC.Internal.Marshallers.PackagePropertiesMarshaller">
             Package properties marshaller.
             @author CDubet, Julien Chable
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.Marshallers.PackagePropertiesMarshaller.Marshall(NPOI.OpenXml4Net.OPC.PackagePart,System.IO.Stream)">
            Marshall package core properties to an XML document. Always return
            <code>true</code>.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.Marshallers.PackagePropertiesMarshaller.AddCategory">
            Add category property element if needed.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.Marshallers.PackagePropertiesMarshaller.AddContentStatus">
            Add content status property element if needed.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.Marshallers.PackagePropertiesMarshaller.AddContentType">
            Add content type property element if needed.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.Marshallers.PackagePropertiesMarshaller.AddCreated">
            Add created property element if needed.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.Marshallers.PackagePropertiesMarshaller.AddCreator">
            Add creator property element if needed.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.Marshallers.PackagePropertiesMarshaller.AddDescription">
            Add description property element if needed.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.Marshallers.PackagePropertiesMarshaller.AddIdentifier">
            Add identifier property element if needed.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.Marshallers.PackagePropertiesMarshaller.AddKeywords">
            Add keywords property element if needed.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.Marshallers.PackagePropertiesMarshaller.AddLanguage">
            Add language property element if needed.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.Marshallers.PackagePropertiesMarshaller.AddLastModifiedBy">
            Add 'last modified by' property if needed.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.Marshallers.PackagePropertiesMarshaller.AddLastPrinted">
             Add 'last printed' property if needed.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.Marshallers.PackagePropertiesMarshaller.AddModified">
            Add modified property element if needed.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.Marshallers.PackagePropertiesMarshaller.AddRevision">
            Add revision property if needed.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.Marshallers.PackagePropertiesMarshaller.AddSubject">
            Add subject property if needed.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.Marshallers.PackagePropertiesMarshaller.AddTitle">
            Add title property if needed.
        </member>
        <member name="T:NPOI.OpenXml4Net.OPC.Internal.Marshallers.ZipPackagePropertiesMarshaller">
             Package core properties marshaller specialized for zipped package.
             @author Julien Chable
        </member>
        <member name="T:NPOI.OpenXml4Net.OPC.Internal.Marshallers.ZipPartMarshaller">
             Zip part marshaller. This marshaller is use to save any part in a zip stream.
             @author Julien Chable
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.Marshallers.ZipPartMarshaller.Marshall(NPOI.OpenXml4Net.OPC.PackagePart,System.IO.Stream)">
             Save the specified part.
             @throws OpenXml4NetException
                         Throws if an internal exception is thrown.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.Marshallers.ZipPartMarshaller.MarshallRelationshipPart(NPOI.OpenXml4Net.OPC.PackageRelationshipCollection,NPOI.OpenXml4Net.OPC.PackagePartName,ICSharpCode.SharpZipLib.Zip.ZipOutputStream)">
             Save relationships into the part.
             @param rels
                        The relationships collection to marshall.
             @param relPartName
                        Part name of the relationship part to marshall.
             @param zos
                        Zip output stream in which to save the XML content of the
                        relationships serialization.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.Internal.MemoryPackagePart.data">
            Storage for the part data.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.MemoryPackagePart.#ctor(NPOI.OpenXml4Net.OPC.OPCPackage,NPOI.OpenXml4Net.OPC.PackagePartName,System.String)">
            Constructor.
            @param pack
                       The owner package.
            @param partName
                       The part name.
            @param contentType
                       The content type.
            @throws InvalidFormatException
                        If the specified URI is not OPC compliant.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.MemoryPackagePart.#ctor(NPOI.OpenXml4Net.OPC.OPCPackage,NPOI.OpenXml4Net.OPC.PackagePartName,System.String,System.Boolean)">
            Constructor.
            @param pack
                       The owner package.
            @param partName
                       The part name.
            @param contentType
                       The content type.
            @param loadRelationships
                       Specify if the relationships will be loaded.
            @throws InvalidFormatException
                        If the specified URI is not OPC compliant.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.MemoryPackagePartOutputStream.Close">
            Close this stream and flush the content.
            @see #flush()
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.MemoryPackagePartOutputStream.Flush">
            Flush this output stream. This method is called by the close() method.
            Warning : don't call this method for output consistency.
            @see #close()
        </member>
        <member name="T:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart">
            Represents the core properties part of a package.
            @author Julien Chable
            @version 1.0
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.#ctor(NPOI.OpenXml4Net.OPC.OPCPackage,NPOI.OpenXml4Net.OPC.PackagePartName)">
            Constructor.
            @param pack
                       Container package.
            @param partName
                       Name of this part.
            @throws InvalidFormatException
                        Throws if the content is invalid.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.category">
            A categorization of the content of this package.
            [Example: Example values for this property might include: Resume, Letter,
            Financial Forecast, Proposal, Technical Presentation, and so on. This
            value might be used by an application's user interface to facilitate
            navigation of a large Set of documents. end example]
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.contentStatus">
            The status of the content.
            [Example: Values might include "Draft", "Reviewed", and "Final". end
            example]
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.contentType">
            The type of content represented, generally defined by a specific use and
            intended audience.
            [Example: Values might include "Whitepaper", "Security Bulletin", and
            "Exam". end example] [Note: This property is distinct from MIME content
            types as defined in RFC 2616. end note]
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.created">
            Date of creation of the resource.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.creator">
            An entity primarily responsible for making the content of the resource.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.description">
            An explanation of the content of the resource.
            [Example: Values might include an abstract, table of contents, reference
            to a graphical representation of content, and a free-text account of the
            content. end example]
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.identifier">
            An unambiguous reference to the resource within a given context.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.keywords">
            A delimited Set of keywords to support searching and indexing. This is
            typically a list of terms that are not available elsewhere in the
            properties.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.language">
            The language of the intellectual content of the resource.
            [Note: IETF RFC 3066 provides guidance on encoding to represent
            languages. end note]
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.lastModifiedBy">
            The user who performed the last modification. The identification is
            environment-specific.
            [Example: A name, email address, or employee ID. end example] It is
            recommended that this value be as concise as possible.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.lastPrinted">
            The date and time of the last printing.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.modified">
            Date on which the resource was changed.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.revision">
            The revision number.
            [Example: This value might indicate the number of saves or revisions,
            provided the application updates it after each revision. end example]
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.subject">
            The topic of the content of the resource.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.title">
            The name given to the resource.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.version">
            The version number. This value is Set by the user or by the application.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.GetCategoryProperty">
            Get the category property.
            @see org.apache.poi.OpenXml4Net.opc.PackageProperties#getCategoryProperty()
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.GetContentStatusProperty">
            Get content status.
            @see org.apache.poi.OpenXml4Net.opc.PackageProperties#getContentStatusProperty()
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.GetContentTypeProperty">
            Get content type.
            @see org.apache.poi.OpenXml4Net.opc.PackageProperties#getContentTypeProperty()
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.GetCreatedProperty">
            Get created date.
            @see org.apache.poi.OpenXml4Net.opc.PackageProperties#getCreatedProperty()
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.GetCreatedPropertyString">
            Get created date formated into a String.
            @return A string representation of the created date.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.GetCreatorProperty">
            Get creator.
            @see org.apache.poi.OpenXml4Net.opc.PackageProperties#getCreatorProperty()
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.GetDescriptionProperty">
            Get description.
            @see org.apache.poi.OpenXml4Net.opc.PackageProperties#getDescriptionProperty()
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.GetIdentifierProperty">
            Get identifier.
            @see org.apache.poi.OpenXml4Net.opc.PackageProperties#getIdentifierProperty()
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.GetKeywordsProperty">
            Get keywords.
            @see org.apache.poi.OpenXml4Net.opc.PackageProperties#getKeywordsProperty()
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.GetLanguageProperty">
            Get the language.
            @see org.apache.poi.OpenXml4Net.opc.PackageProperties#getLanguageProperty()
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.GetLastModifiedByProperty">
            Get the author of last modifications.
            @see org.apache.poi.OpenXml4Net.opc.PackageProperties#getLastModifiedByProperty()
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.GetLastPrintedProperty">
            Get last printed date.
            @see org.apache.poi.OpenXml4Net.opc.PackageProperties#getLastPrintedProperty()
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.GetLastPrintedPropertyString">
            Get last printed date formated into a String.
            @return A string representation of the last printed date.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.GetModifiedProperty">
            Get modified date.
            @see org.apache.poi.OpenXml4Net.opc.PackageProperties#getModifiedProperty()
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.GetModifiedPropertyString">
            Get modified date formated into a String.
            @return A string representation of the modified date.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.GetRevisionProperty">
            Get revision.
            @see org.apache.poi.OpenXml4Net.opc.PackageProperties#getRevisionProperty()
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.GetSubjectProperty">
            Get subject.
            @see org.apache.poi.OpenXml4Net.opc.PackageProperties#getSubjectProperty()
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.GetTitleProperty">
            Get title.
            @see org.apache.poi.OpenXml4Net.opc.PackageProperties#getTitleProperty()
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.GetVersionProperty">
            Get version.
            @see org.apache.poi.OpenXml4Net.opc.PackageProperties#getVersionProperty()
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.SetCategoryProperty(System.String)">
            Set the category.
            @see org.apache.poi.OpenXml4Net.opc.PackageProperties#setCategoryProperty(java.lang.String)
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.SetContentStatusProperty(System.String)">
            Set the content status.
            @see org.apache.poi.OpenXml4Net.opc.PackageProperties#setContentStatusProperty(java.lang.String)
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.SetContentTypeProperty(System.String)">
            Set the content type.
            @see org.apache.poi.OpenXml4Net.opc.PackageProperties#setContentTypeProperty(java.lang.String)
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.SetCreatedProperty(System.String)">
            Set the created date.
            @see org.apache.poi.OpenXml4Net.opc.PackageProperties#setCreatedProperty(org.apache.poi.OpenXml4Net.util.Nullable)
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.SetCreatedProperty(System.Nullable{System.DateTime})">
            Set the created date.
            @see org.apache.poi.OpenXml4Net.opc.PackageProperties#setCreatedProperty(org.apache.poi.OpenXml4Net.util.Nullable)
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.SetCreatorProperty(System.String)">
            Set the creator.
            @see org.apache.poi.OpenXml4Net.opc.PackageProperties#setCreatorProperty(java.lang.String)
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.SetDescriptionProperty(System.String)">
            Set the description.
            @see org.apache.poi.OpenXml4Net.opc.PackageProperties#setDescriptionProperty(java.lang.String)
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.SetIdentifierProperty(System.String)">
            Set identifier.
            @see org.apache.poi.OpenXml4Net.opc.PackageProperties#setIdentifierProperty(java.lang.String)
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.SetKeywordsProperty(System.String)">
            Set keywords.
            @see org.apache.poi.OpenXml4Net.opc.PackageProperties#setKeywordsProperty(java.lang.String)
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.SetLanguageProperty(System.String)">
            Set language.
            @see org.apache.poi.OpenXml4Net.opc.PackageProperties#setLanguageProperty(java.lang.String)
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.SetLastModifiedByProperty(System.String)">
            Set last modifications author.
            @see org.apache.poi.OpenXml4Net.opc.PackageProperties#setLastModifiedByProperty(java.lang.String)
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.SetLastPrintedProperty(System.String)">
            Set last printed date.
            @see org.apache.poi.OpenXml4Net.opc.PackageProperties#setLastPrintedProperty(org.apache.poi.OpenXml4Net.util.Nullable)
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.SetLastPrintedProperty(System.Nullable{System.DateTime})">
            Set last printed date.
            @see org.apache.poi.OpenXml4Net.opc.PackageProperties#setLastPrintedProperty(org.apache.poi.OpenXml4Net.util.Nullable)
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.SetModifiedProperty(System.String)">
            Set last modification date.
            @see org.apache.poi.OpenXml4Net.opc.PackageProperties#setModifiedProperty(org.apache.poi.OpenXml4Net.util.Nullable)
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.SetModifiedProperty(System.Nullable{System.DateTime})">
            Set last modification date.
            @see org.apache.poi.OpenXml4Net.opc.PackageProperties#setModifiedProperty(org.apache.poi.OpenXml4Net.util.Nullable)
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.SetRevisionProperty(System.String)">
            Set revision.
            @see org.apache.poi.OpenXml4Net.opc.PackageProperties#setRevisionProperty(java.lang.String)
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.SetSubjectProperty(System.String)">
            Set subject.
            @see org.apache.poi.OpenXml4Net.opc.PackageProperties#setSubjectProperty(java.lang.String)
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.SetTitleProperty(System.String)">
            Set title.
            @see org.apache.poi.OpenXml4Net.opc.PackageProperties#setTitleProperty(java.lang.String)
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.SetVersionProperty(System.String)">
            Set version.
            @see org.apache.poi.OpenXml4Net.opc.PackageProperties#setVersionProperty(java.lang.String)
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.SetStringValue(System.String)">
            Convert a strig value into a String
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.SetDateValue(System.String)">
            Convert a string value represented a date into a DateTime?.
            @throws InvalidFormatException
                        Throws if the date format isnot valid.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.PackagePropertiesPart.GetDateValue(System.Nullable{System.DateTime})">
            Convert a DateTime? into a String.
            @param d
                       The Date to convert.
            @return The formated date or null.
            @see java.util.SimpleDateFormat
        </member>
        <member name="T:NPOI.OpenXml4Net.OPC.Internal.PartMarshaller">
             Object implemented this interface are considered as part marshaller. A part
             marshaller is responsible to marshall a part in order to be save in a
             package.
             @author Julien Chable
             @version 0.1
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.PartMarshaller.Marshall(NPOI.OpenXml4Net.OPC.PackagePart,System.IO.Stream)">
             Save the content of the package in the stream
             @param part
                        Part to marshall.
             @param out
                        The output stream into which the part will be marshall.
             @return false if any marshall error occurs, else <b>true</b>
             @throws OpenXml4NetException
                         Throws only if any other exceptions are thrown by inner
                         methods.
        </member>
        <member name="T:NPOI.OpenXml4Net.OPC.Internal.PartUnmarshaller">
             Object implemented this interface are considered as part unmarshaller. A part
             unmarshaller is responsible to unmarshall a part in order to load it from a
             package.
             @author Julien Chable
             @version 0.1
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.PartUnmarshaller.Unmarshall(NPOI.OpenXml4Net.OPC.Internal.Unmarshallers.UnmarshallContext,System.IO.Stream)">
             Save the content of the package in the stream
             @param in
                        The input stream from which the part will be unmarshall.
             @return The part freshly unmarshall from the input stream.
             @throws OpenXml4NetException
                         Throws only if any other exceptions are thrown by inner
                         methods.
        </member>
        <member name="T:NPOI.OpenXml4Net.OPC.Internal.Unmarshallers.PackagePropertiesUnmarshaller">
             Package properties unmarshaller.
             @author Julien Chable
             @version 1.0
        </member>
        <!-- Badly formed XML comment ignored for member "M:NPOI.OpenXml4Net.OPC.Internal.Unmarshallers.PackagePropertiesUnmarshaller.CheckElementForOPCCompliance(System.Xml.XmlElement)" -->
        <member name="T:NPOI.OpenXml4Net.OPC.Internal.Unmarshallers.UnmarshallContext">
            Context needed for the unmarshall process of a part. This class is immutable.
            @author Julien Chable
            @version 1.0
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.Unmarshallers.UnmarshallContext.#ctor(NPOI.OpenXml4Net.OPC.OPCPackage,NPOI.OpenXml4Net.OPC.PackagePartName)">
            Constructor.
            @param targetPackage
                       Container.
            @param partName
                       Name of the part to unmarshall.
        </member>
        <member name="P:NPOI.OpenXml4Net.OPC.Internal.Unmarshallers.UnmarshallContext.Package">
            @return the container
        </member>
        <member name="P:NPOI.OpenXml4Net.OPC.Internal.Unmarshallers.UnmarshallContext.PartName">
            @return the partName
        </member>
        <member name="P:NPOI.OpenXml4Net.OPC.Internal.Unmarshallers.UnmarshallContext.ZipEntry">
            @return the zipEntry
        </member>
        <member name="T:NPOI.OpenXml4Net.OPC.Internal.ZipContentTypeManager">
            Zip implementation of the ContentTypeManager.
            @author Julien Chable
            @version 1.0
            @see ContentTypeManager
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.ZipContentTypeManager.#ctor(System.IO.Stream,NPOI.OpenXml4Net.OPC.OPCPackage)">
            Delegate constructor to the super constructor.
            @param in
                       The input stream to parse to fill internal content type
                       collections.
            @throws InvalidFormatException
                        If the content types part content is not valid.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.Internal.ZipHelper.FORWARD_SLASH">
            Forward slash use to convert part name between OPC and zip item naming
            conventions.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.Internal.ZipHelper.READ_WRITE_FILE_BUFFER_SIZE">
            Buffer to read data from file. Use big buffer to improve performaces. the
            InputStream class is reading only 8192 bytes per read call (default value
            set by sun)
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.ZipHelper.#ctor">
            Prevent this class to be instancied.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.ZipHelper.GetCorePropertiesZipEntry(NPOI.OpenXml4Net.OPC.ZipPackage)">
             Retrieve the zip entry of the core properties part.
             @throws OpenXml4NetException
                         Throws if internal error occurs.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.ZipHelper.GetContentTypeZipEntry(NPOI.OpenXml4Net.OPC.ZipPackage)">
            Retrieve the Zip entry of the content types part.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.ZipHelper.GetOPCNameFromZipItemName(System.String)">
             Convert a zip name into an OPC name by adding a leading forward slash to
             the specified item name.
             @param zipItemName
                        Zip item name to convert.
             @return An OPC compliant name.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.ZipHelper.GetZipItemNameFromOPCName(System.String)">
             Convert an OPC item name into a zip item name by removing any leading
             forward slash if it exist.
             @param opcItemName
                        The OPC item name to convert.
             @return A zip item name without any leading slashes.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.ZipHelper.GetZipURIFromOPCName(System.String)">
             Convert an OPC item name into a zip URI by removing any leading forward
             slash if it exist.
             @param opcItemName
                        The OPC item name to convert.
             @return A zip URI without any leading slashes.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.ZipHelper.VerifyZipHeader(NPOI.Util.InputStream)">
            Verifies that the given stream starts with a Zip structure.
            Warning - this will consume the first few bytes of the stream,
             you should push-back or reset the stream after use!
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.ZipHelper.OpenZipStream(System.IO.Stream)">
             Opens the specified stream as a secure zip
             @param stream
                        The stream to open.
             @return The zip stream freshly open.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.ZipHelper.OpenZipFile(System.IO.FileInfo)">
             Opens the specified file as a zip, or returns null if no such file exists
             @param file
                        The file to open.
             @return The zip archive freshly open.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.Internal.ZipHelper.OpenZipFile(System.String)">
             Retrieve and open a zip file with the specified path.
             @param path
                        The file path.
             @return The zip archive freshly open.
        </member>
        <member name="T:NPOI.OpenXml4Net.OPC.OPCPackage">
            Represents a container that can store multiple data objects.
            @author Julien Chable, CDubet
            @version 0.1
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.OPCPackage.logger">
            Logger.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.OPCPackage.defaultPackageAccess">
            Default package access.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.OPCPackage.packageAccess">
            Package access.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.OPCPackage.partList">
            Package parts collection.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.OPCPackage.relationships">
            Package relationships.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.OPCPackage.partMarshallers">
            Part marshallers by content type.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.OPCPackage.defaultPartMarshaller">
            Default part marshaller.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.OPCPackage.partUnmarshallers">
            Part unmarshallers by content type.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.OPCPackage.packageProperties">
            Core package properties.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.OPCPackage.contentTypeManager">
            Manage parts content types of this package.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.OPCPackage.isDirty">
            Flag if a modification is done to the document.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.OPCPackage.originalPackagePath">
            File path of this package.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.OPCPackage.output">
            Output stream for writing this package.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.#ctor(NPOI.OpenXml4Net.OPC.PackageAccess)">
            Constructor.
            @param access
                       Package access.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.Init">
            Initialize the package instance.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.Open(System.String)">
            Open a package with read/write permission.
            @param path
                       The document path.
            @return A Package object, else <b>null</b>.
            @throws InvalidFormatException
                        If the specified file doesn't exist, and a parsing error
                        occur.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.Open(System.IO.FileInfo)">
             Open a package with read/write permission.
             @param file
                        The file to open.
             @return A Package object, else <b>null</b>.
             @throws InvalidFormatException
                         If the specified file doesn't exist, and a parsing error
                         occur.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.Open(NPOI.OpenXml4Net.Util.ZipEntrySource)">
             Open an user provided {@link ZipEntrySource} with read-only permission.
             This method can be used to stream data into POI.
             Opposed to other open variants, the data is read as-is, e.g. there aren't
             any zip-bomb protection put in place.
             @param zipEntry the custom source
             @return A Package object
             @ if a parsing error occur.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.Open(System.String,NPOI.OpenXml4Net.OPC.PackageAccess)">
            Open a package.
            @param path
                       The document path.
            @param access
                       PackageBase access.
            @return A PackageBase object, else <b>null</b>.
            @throws InvalidFormatException
                        If the specified file doesn't exist, and a parsing error
                        occur.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.Open(System.IO.FileInfo,NPOI.OpenXml4Net.OPC.PackageAccess)">
             Open a package.
             @param file
                        The file to open.
             @param access
                        PackageBase access.
             @return A PackageBase object, else <b>null</b>.
             @throws InvalidFormatException
                         If the specified file doesn't exist, and a parsing error
                         occur.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.Open(System.IO.Stream)">
            Open a package.
            Note - uses quite a bit more memory than {@link #open(String)}, which
            doesn't need to hold the whole zip file in memory, and can take advantage
            of native methods
            @param in
                       The InputStream to read the package from
            @return A PackageBase object
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.OpenOrCreate(System.String)">
            Opens a package if it exists, else it Creates one.
            @param file
                       The file to open or to Create.
            @return A newly Created package if the specified file does not exist,
                    else the package extract from the file.
            @throws InvalidFormatException
                        Throws if the specified file exist and is not valid.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.Create(System.String)">
            Creates a new package.
            @param file
                       Path of the document.
            @return A newly Created PackageBase ready to use.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.ConfigurePackage(NPOI.OpenXml4Net.OPC.OPCPackage)">
            Configure the package.
            @param pkg
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.Flush">
            Flush the package : save all.
            @see #close()
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.Close">
            Close the package and save its content.
            @throws IOException
                        If an IO exception occur during the saving process.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.Revert">
            Close the package WITHOUT saving its content. Reinitialize this package
            and cancel all changes done to it.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.AddThumbnail(System.String)">
            <summary>
            Add a thumbnail to the package. This method is provided to make easier
            the addition of a thumbnail in a package. You can do the same work by
            using the traditionnal relationship and part mechanism.
            </summary>
            <param name="path">path The full path to the image file.</param>
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.AddThumbnail(System.String,System.IO.Stream)">
            <summary>
            Add a thumbnail to the package. This method is provided to make easier
            the addition of a thumbnail in a package. You can do the same work by
            using the traditionnal relationship and part mechanism.
            </summary>
            <param name="filename"></param>
            <param name="data"></param>
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.ThrowExceptionIfReadOnly">
            Throws an exception if the package access mode is in read only mode
            (PackageAccess.Read).
            @throws InvalidOperationException
                        Throws if a writing operation is done on a read only package.
            @see org.apache.poi.OpenXml4Net.opc.PackageAccess
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.ThrowExceptionIfWriteOnly">
            Throws an exception if the package access mode is in write only mode
            (PackageAccess.Write). This method is call when other methods need write
            right.
            @throws InvalidOperationException
                        Throws if a read operation is done on a write only package.
            @see org.apache.poi.OpenXml4Net.opc.PackageAccess
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.GetPackageProperties">
            Retrieves or Creates if none exists, core package property part.
            @return The PackageProperties part of this package.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.GetPart(NPOI.OpenXml4Net.OPC.PackagePartName)">
            Retrieve a part identified by its name.
            @param PartName
                       Part name of the part to retrieve.
            @return The part with the specified name, else <code>null</code>.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.GetPartsByContentType(System.String)">
            Retrieve parts by content type.
            @param contentType
                       The content type criteria.
            @return All part associated to the specified content type.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.GetPartsByRelationshipType(System.String)">
            Retrieve parts by relationship type.
            @param relationshipType
                       Relationship type.
            @return All parts which are the target of a relationship with the
                    specified type, if the method can't retrieve relationships from
                    the package, then return <code>null</code>.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.GetPartsByName(System.Text.RegularExpressions.Regex)">
             Retrieve parts by name
             @param namePattern
                        The pattern for matching the names
             @return All parts associated to the specified content type, sorted
             in alphanumerically by the part-name
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.GetPart(NPOI.OpenXml4Net.OPC.PackageRelationship)">
            Get the target part from the specified relationship.
            @param partRel
                       The part relationship uses to retrieve the part.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.GetParts">
            Load the parts of the archive if it has not been done yet. The
            relationships of each part are not loaded.
            Note - Rule M4.1 states that there may only ever be one Core
             Properties Part, but Office produced files will sometimes
             have multiple! As Office ignores all but the first, we relax
             Compliance with Rule M4.1, and ignore all others silently too.
            @return All this package's parts.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.CreatePart(NPOI.OpenXml4Net.OPC.PackagePartName,System.String)">
            Create and Add a part, with the specified name and content type, to the
            package.
            @param PartName
                       Part name.
            @param contentType
                       Part content type.
            @return The newly Created part.
            @throws InvalidFormatException
                        If rule M1.12 is not verified : Packages shall not contain
                        equivalent part names and package implementers shall neither
                        Create nor recognize packages with equivalent part names.
            @see #CreatePartImpl(PackagePartName, String, bool)
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.CreatePart(NPOI.OpenXml4Net.OPC.PackagePartName,System.String,System.Boolean)">
            Create and Add a part, with the specified name and content type, to the
            package. For general purpose, prefer the overload version of this method
            without the 'loadRelationships' parameter.
            @param PartName
                       Part name.
            @param contentType
                       Part content type.
            @param loadRelationships
                       Specify if the existing relationship part, if any, logically
                       associated to the newly Created part will be loaded.
            @return The newly Created part.
            @throws InvalidFormatException
                        If rule M1.12 is not verified : Packages shall not contain
                        equivalent part names and package implementers shall neither
                        Create nor recognize packages with equivalent part names.
            @see {@link#CreatePartImpl(URI, String)}
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.CreatePart(NPOI.OpenXml4Net.OPC.PackagePartName,System.String,System.IO.MemoryStream)">
            Add a part to the package.
            @param PartName
                       Part name of the part to Create.
            @param contentType
                       type associated with the file
            @param content
                       the contents to Add. In order to have faster operation in
                       document merge, the data are stored in memory not on a hard
                       disk
            @return The new part.
            @see #CreatePart(PackagePartName, String)
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.AddPackagePart(NPOI.OpenXml4Net.OPC.PackagePart)">
            Add the specified part to the package. If a part already exists in the
            package with the same name as the one specified, then we replace the old
            part by the specified part.
            @param part
                       The part to Add (or replace).
            @return The part Added to the package, the same as the one specified.
            @throws InvalidFormatException
                        If rule M1.12 is not verified : Packages shall not contain
                        equivalent part names and package implementers shall neither
                        Create nor recognize packages with equivalent part names.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.RemovePart(NPOI.OpenXml4Net.OPC.PackagePart)">
            Remove the specified part in this package. If this part is relationship
            part, then delete all relationships in the source part.
            @param part
                       The part to Remove. If <code>null</code>, skip the action.
            @see #RemovePart(PackagePartName)
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.RemovePart(NPOI.OpenXml4Net.OPC.PackagePartName)">
            Remove a part in this package. If this part is relationship part, then
            delete all relationships in the source part.
            @param PartName
                       The part name of the part to Remove.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.RemovePartRecursive(NPOI.OpenXml4Net.OPC.PackagePartName)">
            Remove a part from this package as well as its relationship part, if one
            exists, and all parts listed in the relationship part. Be aware that this
            do not delete relationships which target the specified part.
            @param PartName
                       The name of the part to delete.
            @throws InvalidFormatException
                        Throws if the associated relationship part of the specified
                        part is not valid.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.DeletePart(NPOI.OpenXml4Net.OPC.PackagePartName)">
            Delete the part with the specified name and its associated relationships
            part if one exists. Prefer the use of this method to delete a part in the
            package, compare to the Remove() methods that don't Remove associated
            relationships part.
            @param PartName
                       Name of the part to delete
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.DeletePartRecursive(NPOI.OpenXml4Net.OPC.PackagePartName)">
            Delete the part with the specified name and all part listed in its
            associated relationships part if one exists. This process is recursively
            apply to all parts in the relationships part of the specified part.
            Prefer the use of this method to delete a part in the package, compare to
            the Remove() methods that don't Remove associated relationships part.
            @param PartName
                       Name of the part to delete
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.ContainPart(NPOI.OpenXml4Net.OPC.PackagePartName)">
            Check if a part already exists in this package from its name.
            @param PartName
                       Part name to check.
            @return <i>true</i> if the part is logically Added to this package, else
                    <i>false</i>.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.AddRelationship(NPOI.OpenXml4Net.OPC.PackagePartName,NPOI.OpenXml4Net.OPC.TargetMode,System.String,System.String)">
            Add a relationship to the package (except relationships part).
            Check rule M4.1 : The format designer shall specify and the format
            producer shall Create at most one core properties relationship for a
            package. A format consumer shall consider more than one core properties
            relationship for a package to be an error. If present, the relationship
            shall target the Core Properties part.
            Check rule M1.25: The Relationships part shall not have relationships to
            any other part. Package implementers shall enforce this requirement upon
            the attempt to Create such a relationship and shall treat any such
            relationship as invalid.
            @param targetPartName
                       Target part name.
            @param targetMode
                       Target mode, either Internal or External.
            @param relationshipType
                       Relationship type.
            @param relID
                       ID of the relationship.
            @see PackageRelationshipTypes
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.AddRelationship(NPOI.OpenXml4Net.OPC.PackagePartName,NPOI.OpenXml4Net.OPC.TargetMode,System.String)">
            Add a package relationship.
            @param targetPartName
                       Target part name.
            @param targetMode
                       Target mode, either Internal or External.
            @param relationshipType
                       Relationship type.
            @see PackageRelationshipTypes
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.AddExternalRelationship(System.String,System.String)">
            Adds an external relationship to a part (except relationships part).
            The targets of external relationships are not subject to the same
            validity checks that internal ones are, as the contents is potentially
            any file, URL or similar.
            @param target
                       External target of the relationship
            @param relationshipType
                       Type of relationship.
            @return The newly Created and Added relationship
            @see org.apache.poi.OpenXml4Net.opc.RelationshipSource#AddExternalRelationship(java.lang.String,
                 java.lang.String)
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.AddExternalRelationship(System.String,System.String,System.String)">
            Adds an external relationship to a part (except relationships part).
            The targets of external relationships are not subject to the same
            validity checks that internal ones are, as the contents is potentially
            any file, URL or similar.
            @param target
                       External target of the relationship
            @param relationshipType
                       Type of relationship.
            @param id
                       Relationship unique id.
            @return The newly Created and Added relationship
            @see org.apache.poi.OpenXml4Net.opc.RelationshipSource#AddExternalRelationship(java.lang.String,
                 java.lang.String)
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.RemoveRelationship(System.String)">
            Delete a relationship from this package.
            @param id
                       Id of the relationship to delete.
        </member>
        <member name="P:NPOI.OpenXml4Net.OPC.OPCPackage.Relationships">
            Retrieves all package relationships.
            @return All package relationships of this package.
            @throws OpenXml4NetException
            @see #GetRelationshipsHelper(String)
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.GetRelationshipsByType(System.String)">
            Retrieves all relationships with the specified type.
            @param relationshipType
                       The filter specifying the relationship type.
            @return All relationships with the specified relationship type.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.GetRelationshipsHelper(System.String)">
            Retrieves all relationships with specified id (normally just ine because
            a relationship id is supposed to be unique).
            @param id
                       Id of the wanted relationship.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.ClearRelationships">
            Clear package relationships.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.EnsureRelationships">
            Ensure that the relationships collection is not null.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.GetRelationship(System.String)">
            @see org.apache.poi.OpenXml4Net.opc.RelationshipSource#GetRelationship(java.lang.String)
        </member>
        <member name="P:NPOI.OpenXml4Net.OPC.OPCPackage.HasRelationships">
            @see org.apache.poi.OpenXml4Net.opc.RelationshipSource#hasRelationships()
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.IsRelationshipExists(NPOI.OpenXml4Net.OPC.PackageRelationship)">
            @see org.apache.poi.OpenXml4Net.opc.RelationshipSource#isRelationshipExists(org.apache.poi.OpenXml4Net.opc.PackageRelationship)
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.AddMarshaller(System.String,NPOI.OpenXml4Net.OPC.Internal.PartMarshaller)">
            Add a marshaller.
            @param contentType
                       The content type to bind to the specified marshaller.
            @param marshaller
                       The marshaller to register with the specified content type.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.AddUnmarshaller(System.String,NPOI.OpenXml4Net.OPC.Internal.PartUnmarshaller)">
            Add an unmarshaller.
            @param contentType
                       The content type to bind to the specified unmarshaller.
            @param unmarshaller
                       The unmarshaller to register with the specified content type.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.RemoveMarshaller(System.String)">
            Remove a marshaller by its content type.
            @param contentType
                       The content type associated with the marshaller to Remove.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.RemoveUnmarshaller(System.String)">
            Remove an unmarshaller by its content type.
            @param contentType
                       The content type associated with the unmarshaller to Remove.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.GetPackageAccess">
            Get the package access mode.
            @return the packageAccess The current package access.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.ValidatePackage(NPOI.OpenXml4Net.OPC.OPCPackage)">
            Validates the package compliance with the OPC specifications.
            @return <b>true</b> if the package is valid else <b>false</b>
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.Save(System.String)">
            Save the document in the specified file.
            @param targetFile
                       Destination file.
            @throws IOException
                        Throws if an IO exception occur.
            @see #save(OutputStream)
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.Save(System.IO.Stream)">
            Save the document in the specified output stream.
            @param outputStream
                       The stream to save the package.
            @see #saveImpl(OutputStream)
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.CreatePartImpl(NPOI.OpenXml4Net.OPC.PackagePartName,System.String,System.Boolean)">
            Core method to Create a package part. This method must be implemented by
            the subclass.
            @param PartName
                       URI of the part to Create.
            @param contentType
                       Content type of the part to Create.
            @return The newly Created package part.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.RemovePartImpl(NPOI.OpenXml4Net.OPC.PackagePartName)">
            Core method to delete a package part. This method must be implemented by
            the subclass.
            @param PartName
                       The URI of the part to delete.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.FlushImpl">
            Flush the package but not save.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.CloseImpl">
            Close the package and cause a save of the package.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.RevertImpl">
            Close the package without saving the document. Discard all changes made
            to this package.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.SaveImpl(System.IO.Stream)">
            Save the package into the specified output stream.
            @param outputStream
                       The output stream use to save this package.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.GetPartImpl(NPOI.OpenXml4Net.OPC.PackagePartName)">
            Get the package part mapped to the specified URI.
            @param PartName
                       The URI of the part to retrieve.
            @return The package part located by the specified URI, else <b>null</b>.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.GetPartsImpl">
            Get all parts link to the package.
            @return A list of the part owned by the package.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.ReplaceContentType(System.String,System.String)">
             Replace a content type in this package.
             <p>
                 A typical scneario to call this method is to rename a template file to the main format, e.g.
                 ".dotx" to ".docx"
                 ".dotm" to ".docm"
                 ".xltx" to ".xlsx"
                 ".xltm" to ".xlsm"
                 ".potx" to ".pptx"
                 ".potm" to ".pptm"
             </p>
             For example, a code converting  a .xlsm macro workbook to .xlsx would look as follows:
             <p>
                <pre><code>
                 OPCPackage pkg = OPCPackage.open(new FileInputStream("macro-workbook.xlsm"));
                 pkg.replaceContentType(
                     "application/vnd.ms-excel.sheet.macroEnabled.main+xml",
                     "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml");
                 FileOutputStream out = new FileOutputStream("workbook.xlsx");
                 pkg.save(out);
                 out.close();
                </code></pre>
             </p>
             @param oldContentType  the content type to be replaced
             @param newContentType  the replacement
             @return whether replacement was succesfull
             @since POI-3.8
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.RegisterPartAndContentType(NPOI.OpenXml4Net.OPC.PackagePart)">
             Add the specified part, and register its content type with the content
             type manager.
             @param part
                        The part to add.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.OPCPackage.UnregisterPartAndContentType(NPOI.OpenXml4Net.OPC.PackagePartName)">
             Remove the specified part, and clear its content type from the content
             type manager.
             @param partName
                        The part name of the part to remove.
        </member>
        <member name="T:NPOI.OpenXml4Net.OPC.PackageAccess">
             Specifies package access.
             @author Julien Chable
             @version 1.0
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackageAccess.READ">
            Read only. Write not authorized.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackageAccess.WRITE">
            Write only. Read not authorized.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackageAccess.READ_WRITE">
            Read and Write mode.
        </member>
        <member name="T:NPOI.OpenXml4Net.OPC.PackageNamespaces">
             Open Packaging Convention namespaces URI.
             @author Julien Chable
             @version 1.0
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackageNamespaces.NAMESPACE_DCTERMS">
            Dublin Core Terms URI.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackageNamespaces.NAMESPACE_DC">
            Dublin Core namespace URI.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackageNamespaces.CONTENT_TYPES">
            Content Types.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackageNamespaces.CORE_PROPERTIES">
            Core Properties.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackageNamespaces.DIGITAL_SIGNATURE">
            Digital Signatures.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackageNamespaces.RELATIONSHIPS">
            Relationships.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackageNamespaces.MARKUP_COMPATIBILITY">
            Markup Compatibility.
        </member>
        <member name="T:NPOI.OpenXml4Net.OPC.PackagePart">
            Provides a base class for parts stored in a Package.
            @author Julien Chable
            @version 0.9
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackagePart._container">
            This part's container.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackagePart._partName">
            The part name. (required by the specification [M1.1])
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackagePart._contentType">
            The type of content of this part. (required by the specification [M1.2])
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackagePart._isRelationshipPart">
            Flag to know if this part is a relationship.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackagePart._isDeleted">
            Flag to know if this part has been logically deleted.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackagePart._relationships">
            This part's relationships.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagePart.#ctor(NPOI.OpenXml4Net.OPC.OPCPackage,NPOI.OpenXml4Net.OPC.PackagePartName,NPOI.OpenXml4Net.OPC.Internal.ContentType)">
            Constructor.
            @param pack
                       Parent package.
            @param partName
                       The part name, relative to the parent Package root.
            @param contentType
                       The content type.
            @throws InvalidFormatException
                        If the specified URI is not valid.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagePart.#ctor(NPOI.OpenXml4Net.OPC.OPCPackage,NPOI.OpenXml4Net.OPC.PackagePartName,NPOI.OpenXml4Net.OPC.Internal.ContentType,System.Boolean)">
            Constructor.
            @param pack
                       Parent package.
            @param partName
                       The part name, relative to the parent Package root.
            @param contentType
                       The content type.
            @param loadRelationships
                       Specify if the relationships will be loaded
            @throws InvalidFormatException
                        If the specified URI is not valid.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagePart.#ctor(NPOI.OpenXml4Net.OPC.OPCPackage,NPOI.OpenXml4Net.OPC.PackagePartName,System.String)">
            Constructor.
            @param pack
                       Parent package.
            @param partName
                       The part name, relative to the parent Package root.
            @param contentType
                       The Multipurpose Internet Mail Extensions (MIME) content type
                       of the part's data stream.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagePart.FindExistingRelation(NPOI.OpenXml4Net.OPC.PackagePart)">
            <summary>
            Check if the new part was already added before via PackagePart.addRelationship()
            </summary>
            <param name="packagePart">to find the relationship for</param>
            <returns>The existing relationship, or null if there isn't yet one</returns>
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagePart.AddExternalRelationship(System.String,System.String)">
            Adds an external relationship to a part (except relationships part).
            The targets of external relationships are not subject to the same
            validity checks that internal ones are, as the contents is potentially
            any file, URL or similar.
            @param target
                       External target of the relationship
            @param relationshipType
                       Type of relationship.
            @return The newly created and added relationship
            @see org.apache.poi.OpenXml4Net.opc.RelationshipSource#addExternalRelationship(java.lang.String,
                 java.lang.String)
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagePart.AddExternalRelationship(System.String,System.String,System.String)">
            Adds an external relationship to a part (except relationships part).
            The targets of external relationships are not subject to the same
            validity checks that internal ones are, as the contents is potentially
            any file, URL or similar.
            @param target
                       External target of the relationship
            @param relationshipType
                       Type of relationship.
            @param id
                       Relationship unique id.
            @return The newly created and added relationship
            @see org.apache.poi.OpenXml4Net.opc.RelationshipSource#addExternalRelationship(java.lang.String,
                 java.lang.String)
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagePart.AddRelationship(NPOI.OpenXml4Net.OPC.PackagePartName,NPOI.OpenXml4Net.OPC.TargetMode,System.String)">
            Add a relationship to a part (except relationships part).
            @param targetPartName
                       Name of the target part. This one must be relative to the
                       source root directory of the part.
            @param targetMode
                       Mode [Internal|External].
            @param relationshipType
                       Type of relationship.
            @return The newly created and added relationship
            @see org.apache.poi.OpenXml4Net.opc.RelationshipSource#AddRelationship(org.apache.poi.OpenXml4Net.opc.PackagePartName,
                 org.apache.poi.OpenXml4Net.opc.TargetMode, java.lang.String)
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagePart.AddRelationship(NPOI.OpenXml4Net.OPC.PackagePartName,NPOI.OpenXml4Net.OPC.TargetMode,System.String,System.String)">
            Add a relationship to a part (except relationships part).
            <p>
            Check rule M1.25: The Relationships part shall not have relationships to
            any other part. Package implementers shall enforce this requirement upon
            the attempt to create such a relationship and shall treat any such
            relationship as invalid.
            </p>
            @param targetPartName
                       Name of the target part. This one must be relative to the
                       source root directory of the part.
            @param targetMode
                       Mode [Internal|External].
            @param relationshipType
                       Type of relationship.
            @param id
                       Relationship unique id.
            @return The newly created and added relationship
            @throws InvalidFormatException
                        If the URI point to a relationship part URI.
            @see org.apache.poi.OpenXml4Net.opc.RelationshipSource#AddRelationship(org.apache.poi.OpenXml4Net.opc.PackagePartName,
                 org.apache.poi.OpenXml4Net.opc.TargetMode, java.lang.String, java.lang.String)
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagePart.AddRelationship(System.Uri,NPOI.OpenXml4Net.OPC.TargetMode,System.String)">
            Add a relationship to a part (except relationships part).
            @param targetURI
                       URI the target part. Must be relative to the source root
                       directory of the part.
            @param targetMode
                       Mode [Internal|External].
            @param relationshipType
                       Type of relationship.
            @return The newly created and added relationship
            @see org.apache.poi.OpenXml4Net.opc.RelationshipSource#AddRelationship(org.apache.poi.OpenXml4Net.opc.PackagePartName,
                 org.apache.poi.OpenXml4Net.opc.TargetMode, java.lang.String)
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagePart.AddRelationship(System.Uri,NPOI.OpenXml4Net.OPC.TargetMode,System.String,System.String)">
            Add a relationship to a part (except relationships part).
            <p>
            Check rule M1.25: The Relationships part shall not have relationships to
            any other part. Package implementers shall enforce this requirement upon
            the attempt to create such a relationship and shall treat any such
            relationship as invalid.
            </p>
            @param targetURI
                       URI of the target part. Must be relative to the source root
                       directory of the part.
            @param targetMode
                       Mode [Internal|External].
            @param relationshipType
                       Type of relationship.
            @param id
                       Relationship unique id.
            @return The newly created and added relationship
            @throws InvalidFormatException
                        If the URI point to a relationship part URI.
            @see org.apache.poi.OpenXml4Net.opc.RelationshipSource#AddRelationship(org.apache.poi.OpenXml4Net.opc.PackagePartName,
                 org.apache.poi.OpenXml4Net.opc.TargetMode, java.lang.String, java.lang.String)
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagePart.ClearRelationships">
            @see org.apache.poi.OpenXml4Net.opc.RelationshipSource#clearRelationships()
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagePart.RemoveRelationship(System.String)">
            Delete the relationship specified by its id.
            @param id
                       The ID identified the part to delete.
            @see org.apache.poi.OpenXml4Net.opc.RelationshipSource#removeRelationship(java.lang.String)
        </member>
        <member name="P:NPOI.OpenXml4Net.OPC.PackagePart.Relationships">
            Retrieve all the relationships attached to this part.
            @return This part's relationships.
            @throws OpenXml4NetException
            @see org.apache.poi.OpenXml4Net.opc.RelationshipSource#getRelationships()
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagePart.GetRelationship(System.String)">
            Retrieves a package relationship from its id.
            @param id
                       ID of the package relationship to retrieve.
            @return The package relationship
            @see org.apache.poi.OpenXml4Net.opc.RelationshipSource#getRelationship(java.lang.String)
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagePart.GetRelationshipsByType(System.String)">
            Retrieve all relationships attached to this part which have the specified
            type.
            @param relationshipType
                       Relationship type filter.
            @return All relationships from this part that have the specified type.
            @throws InvalidFormatException
                        If an error occurs while parsing the part.
            @throws InvalidOperationException
                        If the package is open in write only mode.
            @see org.apache.poi.OpenXml4Net.opc.RelationshipSource#getRelationshipsByType(java.lang.String)
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagePart.GetRelationshipsCore(System.String)">
            Implementation of the getRelationships method().
            @param filter
                       Relationship type filter. If <i>null</i> then the filter is
                       disabled and return all the relationships.
            @return All relationships from this part that have the specified type.
            @throws InvalidFormatException
                        Throws if an error occurs during parsing the relationships
                        part.
            @throws InvalidOperationException
                        Throws if the package is open en write only mode.
            @see #getRelationshipsByType(String)
        </member>
        <member name="P:NPOI.OpenXml4Net.OPC.PackagePart.HasRelationships">
            Knows if the part have any relationships.
            @return <b>true</b> if the part have at least one relationship else
                    <b>false</b>.
            @see org.apache.poi.OpenXml4Net.opc.RelationshipSource#hasRelationships()
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagePart.IsRelationshipExists(NPOI.OpenXml4Net.OPC.PackageRelationship)">
            Checks if the specified relationship is part of this package part.
            @param rel
                       The relationship to check.
            @return <b>true</b> if the specified relationship exists in this part,
                    else returns <b>false</b>
            @see org.apache.poi.OpenXml4Net.opc.RelationshipSource#isRelationshipExists(org.apache.poi.OpenXml4Net.opc.PackageRelationship)
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagePart.GetRelatedPart(NPOI.OpenXml4Net.OPC.PackageRelationship)">
             Get the PackagePart that is the target of a relationship.
             @param rel A relationship from this part to another one
             @return The target part of the relationship
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagePart.GetInputStream">
            Get the input stream of this part to read its content.
            @return The input stream of the content of this part, else
                    <code>null</code>.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagePart.GetOutputStream">
             Get the output stream of this part. If the part is originally embedded in
             Zip package, it'll be transform intot a <i>MemoryPackagePart</i> in
             order to write inside (the standard Java API doesn't allow to write in
             the file)
             @see org.apache.poi.openxml4j.opc.internal.MemoryPackagePart
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagePart.ThrowExceptionIfRelationship">
            Throws an exception if this package part is a relationship part.
            @throws InvalidOperationException
                        If this part is a relationship part.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagePart.LoadRelationships">
            Ensure the package relationships collection instance is built.
            @throws InvalidFormatException
                        Throws if
        </member>
        <member name="P:NPOI.OpenXml4Net.OPC.PackagePart.PartName">
            @return the uri
        </member>
        <member name="P:NPOI.OpenXml4Net.OPC.PackagePart.ContentType">
            @return the contentType
        </member>
        <member name="P:NPOI.OpenXml4Net.OPC.PackagePart.ContentTypeDetails">
            @return The Content Type, including parameters, of the part
        </member>
        <member name="P:NPOI.OpenXml4Net.OPC.PackagePart.IsRelationshipPart">
            @return true if this part is a relationship
        </member>
        <member name="P:NPOI.OpenXml4Net.OPC.PackagePart.IsDeleted">
            @return true if this part has been logically deleted
        </member>
        <member name="P:NPOI.OpenXml4Net.OPC.PackagePart.Size">
            @return The length of the part in bytes, or -1 if not known
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagePart.CompareTo(NPOI.OpenXml4Net.OPC.PackagePart)">
            Compare based on the package part name, using a natural sort order
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagePart.GetInputStreamImpl">
            Abtract method that get the input stream of this part.
            @exception IOException
                           Throws if an IO Exception occur in the implementation
                           method.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagePart.GetOutputStreamImpl">
            Abstract method that get the output stream of this part.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagePart.Save(System.IO.Stream)">
            Save the content of this part and the associated relationships part (if
            this part own at least one relationship) into the specified output
            stream.
            @param zos
                       Output stream to save this part.
            @throws OpenXml4NetException
                        If any exception occur.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagePart.Load(System.IO.Stream)">
            Load the content of this part.
            @param ios
                       The input stream of the content to load.
            @return <b>true</b> if the content has been successfully loaded, else
                    <b>false</b>.
            @throws InvalidFormatException
                        Throws if the content format is invalid.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagePart.Close">
            Close this part : flush this part, close the input stream and output
            stream. After this method call, the part must be available for packaging.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagePart.Flush">
            Flush the content of this part. If the input stream and/or output stream
            as in a waiting state to read or write, the must to empty their
            respective buffer.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagePart.Clear">
            Allows sub-classes to clean up before new data is added.
        </member>
        <member name="T:NPOI.OpenXml4Net.OPC.PackagePartCollection">
             A package part collection.
             @author Julien Chable
             @version 0.1
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackagePartCollection.registerPartNameStr">
            Arraylist use to store this collection part names as string for rule
            M1.11 optimized checking.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagePartCollection.Put(NPOI.OpenXml4Net.OPC.PackagePartName,NPOI.OpenXml4Net.OPC.PackagePart)">
             Check rule [M1.11]: a package implementer shall neither create nor
             recognize a part with a part name derived from another part name by
             Appending segments to it.
             @exception InvalidOperationException
                            Throws if you try to add a part with a name derived from
                            another part name.
        </member>
        <member name="T:NPOI.OpenXml4Net.OPC.PackagePartName">
             An immutable Open Packaging Convention compliant part name.
             @author Julien Chable
             @see <a href="http://www.ietf.org/rfc/rfc3986.txt">http://www.ietf.org/rfc/rfc3986.txt</a>
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackagePartName.partNameURI">
            Part name stored as an URI.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackagePartName.RFC3986_PCHAR_SUB_DELIMS">
            Reserved characters for sub delimitations.
        </member>
        <!-- Badly formed XML comment ignored for member "F:NPOI.OpenXml4Net.OPC.PackagePartName.RFC3986_PCHAR_UNRESERVED_SUP" -->
        <member name="F:NPOI.OpenXml4Net.OPC.PackagePartName.RFC3986_PCHAR_AUTHORIZED_SUP">
            Authorized reserved characters for pChar.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackagePartName.isRelationship">
            Flag to know if this part name is from a relationship part name.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagePartName.#ctor(System.Uri,System.Boolean)">
             Constructor. Makes a ValidPartName object from a java.net.URI
             @param uri
                        The URI to validate and to transform into ValidPartName.
             @param checkConformance
                        Flag to specify if the contructor have to validate the OPC
                        conformance. Must be always <code>true</code> except for
                        special URI like '/' which is needed for internal use by
                        OpenXml4Net but is not valid.
             @throws InvalidFormatException
                         Throw if the specified part name is not conform to Open
                         Packaging Convention specifications.
             @see java.net.URI
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagePartName.#ctor(System.String,System.Boolean)">
             Constructor. Makes a ValidPartName object from a String part name.
             @param partName
                        Part name to valid and to create.
             @param checkConformance
                        Flag to specify if the contructor have to validate the OPC
                        conformance. Must be always <code>true</code> except for
                        special URI like '/' which is needed for internal use by
                        OpenXml4Net but is not valid.
             @throws InvalidFormatException
                         Throw if the specified part name is not conform to Open
                         Packaging Convention specifications.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagePartName.IsRelationshipPartURI(System.Uri)">
             Check if the specified part name is a relationship part name.
             @param partUri
                        The URI to check.
             @return <code>true</code> if this part name respect the relationship
                     part naming convention else <code>false</code>.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagePartName.IsRelationshipPartURI">
             Know if this part name is a relationship part name.
             @return <code>true</code> if this part name respect the relationship
                     part naming convention else <code>false</code>.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagePartName.ThrowExceptionIfInvalidPartUri(System.Uri)">
             Throws an exception (of any kind) if the specified part name does not
             follow the Open Packaging Convention specifications naming rules.
             @param partUri
                        The part name to check.
             @throws Exception
                         Throws if the part name is invalid.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagePartName.ThrowExceptionIfEmptyURI(System.Uri)">
             Throws an exception if the specified URI is empty. [M1.1]
             @param partURI
                        Part URI to check.
             @throws InvalidFormatException
                         If the specified URI is empty.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagePartName.ThrowExceptionIfPartNameHaveInvalidSegments(System.Uri)">
             Throws an exception if the part name has empty segments. [M1.3]
             Throws an exception if a segment any characters other than pchar
             characters. [M1.6]
             Throws an exception if a segment contain percent-encoded forward slash
             ('/'), or backward slash ('\') characters. [M1.7]
             Throws an exception if a segment contain percent-encoded unreserved
             characters. [M1.8]
             Throws an exception if the specified part name's segments end with a dot
             ('.') character. [M1.9]
             Throws an exception if a segment doesn't include at least one non-dot
             character. [M1.10]
             @param partUri
                        The part name to check.
             @throws InvalidFormatException
                         if the specified URI contain an empty segments or if one the
                         segments contained in the part name, ends with a dot ('.')
                         character.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagePartName.CheckPCharCompliance(System.String)">
             Throws an exception if a segment any characters other than pchar
             characters. [M1.6]
             Throws an exception if a segment contain percent-encoded forward slash
             ('/'), or backward slash ('\') characters. [M1.7]
             Throws an exception if a segment contain percent-encoded unreserved
             characters. [M1.8]
             @param segment
                        The segment to check
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagePartName.ThrowExceptionIfPartNameNotStartsWithForwardSlashChar(System.Uri)">
             Throws an exception if the specified part name doesn't start with a
             forward slash character '/'. [M1.4]
             @param partUri
                        The part name to check.
             @throws InvalidFormatException
                         If the specified part name doesn't start with a forward slash
                         character '/'.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagePartName.ThrowExceptionIfPartNameEndsWithForwardSlashChar(System.Uri)">
             Throws an exception if the specified part name ends with a forwar slash
             character '/'. [M1.5]
             @param partUri
                        The part name to check.
             @throws InvalidFormatException
                         If the specified part name ends with a forwar slash character
                         '/'.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagePartName.ThrowExceptionIfAbsoluteUri(System.Uri)">
             Throws an exception if the specified URI is absolute.
             @param partUri
                        The URI to check.
             @throws InvalidFormatException
                         Throws if the specified URI is absolute.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagePartName.CompareTo(NPOI.OpenXml4Net.OPC.PackagePartName)">
             Compare two part name following the rule M1.12 :
             Part name equivalence is determined by comparing part names as
             case-insensitive ASCII strings. Packages shall not contain equivalent
             part names and package implementers shall neither create nor recognize
             packages with equivalent part names. [M1.12]
        </member>
        <member name="P:NPOI.OpenXml4Net.OPC.PackagePartName.Extension">
             Retrieves the extension of the part name if any. If there is no extension
             returns an empty String. Example : '/document/content.xml' => 'xml'
             @return The extension of the part name.
        </member>
        <member name="P:NPOI.OpenXml4Net.OPC.PackagePartName.Name">
             Get this part name.
             @return The name of this part name.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagePartName.Equals(System.Object)">
            Part name equivalence is determined by comparing part names as
            case-insensitive ASCII strings. Packages shall not contain equivalent
            part names and package implementers shall neither create nor recognize
            packages with equivalent part names. [M1.12]
        </member>
        <member name="P:NPOI.OpenXml4Net.OPC.PackagePartName.URI">
             Part name property getter.
             @return This part name URI.
        </member>
        <!-- Badly formed XML comment ignored for member "M:NPOI.OpenXml4Net.OPC.PackagePartName.Compare(NPOI.OpenXml4Net.OPC.PackagePartName,NPOI.OpenXml4Net.OPC.PackagePartName)" -->
        <!-- Badly formed XML comment ignored for member "M:NPOI.OpenXml4Net.OPC.PackagePartName.Compare(System.String,System.String)" -->
        <member name="T:NPOI.OpenXml4Net.OPC.PackageProperties">
            Represents the core properties of an OPC package.
            @author Julien Chable
            @version 1.0
            @see org.apache.poi.OpenXml4Net.opc.OPCPackage
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageProperties.GetCategoryProperty">
            Set the category of the content of this package.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageProperties.SetCategoryProperty(System.String)">
            Set the category of the content of this package.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageProperties.GetContentStatusProperty">
            Set the status of the content.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageProperties.SetContentStatusProperty(System.String)">
            Get the status of the content.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageProperties.GetContentTypeProperty">
            Get the type of content represented, generally defined by a specific use
            and intended audience.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageProperties.SetContentTypeProperty(System.String)">
            Set the type of content represented, generally defined by a specific use
            and intended audience.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageProperties.GetCreatedProperty">
            Get the date of creation of the resource.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageProperties.SetCreatedProperty(System.String)">
            Set the date of creation of the resource.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageProperties.SetCreatedProperty(System.Nullable{System.DateTime})">
            Set the date of creation of the resource.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageProperties.GetCreatorProperty">
            Get the entity primarily responsible for making the content of the
            resource.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageProperties.SetCreatorProperty(System.String)">
            Set the entity primarily responsible for making the content of the
            resource.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageProperties.GetDescriptionProperty">
            Get the explanation of the content of the resource.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageProperties.SetDescriptionProperty(System.String)">
            Set the explanation of the content of the resource.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageProperties.GetIdentifierProperty">
            Get an unambiguous reference to the resource within a given context.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageProperties.SetIdentifierProperty(System.String)">
            Set an unambiguous reference to the resource within a given context.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageProperties.GetKeywordsProperty">
            Get a delimited Set of keywords to support searching and indexing. This
            is typically a list of terms that are not available elsewhere in the
            properties
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageProperties.SetKeywordsProperty(System.String)">
            Set a delimited Set of keywords to support searching and indexing. This
            is typically a list of terms that are not available elsewhere in the
            properties
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageProperties.GetLanguageProperty">
            Get the language of the intellectual content of the resource.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageProperties.SetLanguageProperty(System.String)">
            Set the language of the intellectual content of the resource.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageProperties.GetLastModifiedByProperty">
            Get the user who performed the last modification.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageProperties.SetLastModifiedByProperty(System.String)">
            Set the user who performed the last modification.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageProperties.GetLastPrintedProperty">
            Get the date and time of the last printing.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageProperties.SetLastPrintedProperty(System.String)">
            Set the date and time of the last printing.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageProperties.SetLastPrintedProperty(System.Nullable{System.DateTime})">
            Set the date and time of the last printing.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageProperties.GetModifiedProperty">
            Get the date on which the resource was changed.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageProperties.SetModifiedProperty(System.String)">
            Set the date on which the resource was changed.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageProperties.SetModifiedProperty(System.Nullable{System.DateTime})">
            Set the date on which the resource was changed.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageProperties.GetRevisionProperty">
            Get the revision number.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageProperties.SetRevisionProperty(System.String)">
            Set the revision number.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageProperties.GetSubjectProperty">
            Get the topic of the content of the resource.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageProperties.SetSubjectProperty(System.String)">
            Set the topic of the content of the resource.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageProperties.GetTitleProperty">
            Get the name given to the resource.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageProperties.SetTitleProperty(System.String)">
            Set the name given to the resource.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageProperties.GetVersionProperty">
            Get the version number.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageProperties.SetVersionProperty(System.String)">
            Set the version number.
        </member>
        <member name="T:NPOI.OpenXml4Net.OPC.PackageRelationship">
            A part relationship.
            @author Julien Chable
            @version 1.0
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackageRelationship.id">
            Relation id.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackageRelationship.container">
            Reference to the package.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackageRelationship.relationshipType">
            Relationship type
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackageRelationship.source">
            Part of this relationship source
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackageRelationship.targetMode">
            Targeting mode [Internal|External]
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackageRelationship.targetUri">
            Target URI
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageRelationship.#ctor(NPOI.OpenXml4Net.OPC.OPCPackage,NPOI.OpenXml4Net.OPC.PackagePart,System.Uri,NPOI.OpenXml4Net.OPC.TargetMode,System.String,System.String)">
            Constructor.
            @param pkg
            @param sourcePart
            @param targetUri
            @param targetMode
            @param relationshipType
            @param id
        </member>
        <member name="P:NPOI.OpenXml4Net.OPC.PackageRelationship.Package">
            @return the container
        </member>
        <member name="P:NPOI.OpenXml4Net.OPC.PackageRelationship.Id">
            @return the id
        </member>
        <member name="P:NPOI.OpenXml4Net.OPC.PackageRelationship.RelationshipType">
            @return the relationshipType
        </member>
        <member name="P:NPOI.OpenXml4Net.OPC.PackageRelationship.Source">
            @return the source
        </member>
        <member name="P:NPOI.OpenXml4Net.OPC.PackageRelationship.SourceUri">
            @return URL of the source part of this relationship
        </member>
        <member name="P:NPOI.OpenXml4Net.OPC.PackageRelationship.TargetMode">
            public URI getSourceUri(){ }
            @return the targetMode
        </member>
        <member name="P:NPOI.OpenXml4Net.OPC.PackageRelationship.TargetUri">
            @return the targetUri
        </member>
        <member name="T:NPOI.OpenXml4Net.OPC.PackageRelationshipCollection">
            Represents a collection of PackageRelationship elements that are owned by a
            given PackagePart or the Package.
            @author Julien Chable, CDubettier
            @version 0.1
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackageRelationshipCollection.relationshipsByID">
            Package relationships ordered by ID.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackageRelationshipCollection.relationshipsByType">
            Package relationships ordered by type.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackageRelationshipCollection.internalRelationshipsByTargetName">
            A lookup of internal relationships to avoid
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackageRelationshipCollection.relationshipPart">
            This relationshipPart.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackageRelationshipCollection.sourcePart">
            Source part.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackageRelationshipCollection.partName">
            This part name.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackageRelationshipCollection.container">
            Reference to the package.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackageRelationshipCollection.nextRelationshipId">
            The ID number of the next rID# to generate, or -1
             if that is still to be determined.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageRelationshipCollection.#ctor">
            Constructor.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageRelationshipCollection.#ctor(NPOI.OpenXml4Net.OPC.PackageRelationshipCollection,System.String)">
            Copy constructor.
            This collection will contain only elements from the specified collection
            for which the type is compatible with the specified relationship type
            filter.
            @param coll
                       Collection to import.
            @param filter
                       Relationship type filter.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageRelationshipCollection.#ctor(NPOI.OpenXml4Net.OPC.OPCPackage)">
            Constructor.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageRelationshipCollection.#ctor(NPOI.OpenXml4Net.OPC.PackagePart)">
            Constructor.
            @throws InvalidFormatException
                        Throws if the format of the content part is invalid.
            @throws InvalidOperationException
                        Throws if the specified part is a relationship part.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageRelationshipCollection.#ctor(NPOI.OpenXml4Net.OPC.OPCPackage,NPOI.OpenXml4Net.OPC.PackagePart)">
            Constructor. Parse the existing package relationship part if one exists.
            @param container
                       The parent package.
            @param part
                       The part that own this relationships collection. If <b>null</b>
                       then this part is considered as the package root.
            @throws InvalidFormatException
                        If an error occurs during the parsing of the relatinships
                        part fo the specified part.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageRelationshipCollection.GetRelationshipPartName(NPOI.OpenXml4Net.OPC.PackagePart)">
            Get the relationship part name of the specified part.
            @param part
                       The part .
            @return The relationship part name of the specified part. Be careful,
                    only the correct name is returned, this method does not check if
                    the part really exist in a package !
            @throws InvalidOperationException
                        Throws if the specified part is a relationship part.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageRelationshipCollection.AddRelationship(NPOI.OpenXml4Net.OPC.PackageRelationship)">
            Add the specified relationship to the collection.
            @param relPart
                       The relationship to add.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageRelationshipCollection.AddRelationship(System.Uri,NPOI.OpenXml4Net.OPC.TargetMode,System.String,System.String)">
            Add a relationship to the collection.
            @param targetUri
                       Target URI.
            @param targetMode
                       The target mode : INTERNAL or EXTERNAL
            @param relationshipType
                       Relationship type.
            @param id
                       Relationship ID.
            @return The newly created relationship.
            @see PackageAccess
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageRelationshipCollection.RemoveRelationship(System.String)">
            Remove a relationship by its ID.
            @param id
                       The relationship ID to Remove.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageRelationshipCollection.RemoveRelationship(NPOI.OpenXml4Net.OPC.PackageRelationship)">
            Remove a relationship by its reference.
            @param rel
                       The relationship to delete.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageRelationshipCollection.GetRelationship(System.Int32)">
            Retrieves a relationship by its index in the collection.
            @param index
                       Must be a value between [0-relationships_count-1]
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageRelationshipCollection.GetRelationshipByID(System.String)">
            Retrieves a package relationship based on its id.
            @param id
                       ID of the package relationship to retrieve.
            @return The package relationship identified by the specified id.
        </member>
        <member name="P:NPOI.OpenXml4Net.OPC.PackageRelationshipCollection.Size">
            Get the numbe rof relationships in the collection.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageRelationshipCollection.ParseRelationshipsPart(NPOI.OpenXml4Net.OPC.PackagePart)">
            Parse the relationship part and add all relationship in this collection.
            @param relPart
                       The package part to parse.
            @throws InvalidFormatException
                        Throws if the relationship part is invalid.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageRelationshipCollection.GetRelationships(System.String)">
            Retrieves all relations with the specified type.
            @param typeFilter
                       Relationship type filter. If <b>null</b> then all
                       relationships are returned.
            @return All relationships of the type specified by the filter.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageRelationshipCollection.GetEnumerator">
            Get this collection's iterator.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageRelationshipCollection.Iterator(System.String)">
            Get an iterator of a collection with all relationship with the specified
            type.
            @param typeFilter
                       Type filter.
            @return An iterator to a collection containing all relationships with the
                    specified type contain in this collection.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackageRelationshipCollection.Clear">
            Clear all relationships.
        </member>
        <member name="T:NPOI.OpenXml4Net.OPC.PackageRelationshipTypes">
             Relationship types.
             @author Julien Chable
             @version 0.2
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackageRelationshipTypes.CORE_PROPERTIES">
             Core properties relationship type.
              <p>
              The standard specifies a source relations ship for the Core File Properties part as follows:
              <code>http://schemas.openxmlformats.org/officedocument/2006/relationships/metadata/core-properties.</code>
              </p>
              <p>
               Office uses the following source relationship for the Core File Properties part:
               <code>http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties.</code>
             </p>
             See 2.1.33 Part 1 Section 15.2.11.1, Core File Properties Part in [MS-OE376].pdf
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackageRelationshipTypes.CORE_PROPERTIES_ECMA376">
            Core properties relationship type as defiend in ECMA 376.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackageRelationshipTypes.DIGITAL_SIGNATURE">
            Digital signature relationship type.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackageRelationshipTypes.DIGITAL_SIGNATURE_CERTIFICATE">
            Digital signature certificate relationship type.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackageRelationshipTypes.DIGITAL_SIGNATURE_ORIGIN">
            Digital signature origin relationship type.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackageRelationshipTypes.THUMBNAIL">
            Thumbnail relationship type.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackageRelationshipTypes.EXTENDED_PROPERTIES">
            Extended properties relationship type.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackageRelationshipTypes.STRICT_EXTENDED_PROPERTIES">
            Extended properties relationship type for strict ooxml.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackageRelationshipTypes.CUSTOM_PROPERTIES">
            Custom properties relationship type.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackageRelationshipTypes.CORE_DOCUMENT">
            Core document relationship type.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackageRelationshipTypes.STRICT_CORE_DOCUMENT">
            Core document relationship type for strict ooxml.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackageRelationshipTypes.CUSTOM_XML">
            Custom XML relationship type.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackageRelationshipTypes.IMAGE_PART">
            Image type.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackageRelationshipTypes.HYPERLINK_PART">
            Hyperlink type.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackageRelationshipTypes.STYLE_PART">
            Style type.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackageRelationshipTypes.EXTERNAL_LINK_PATH">
            External Link to another Document
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackageRelationshipTypes.VISIO_CORE_DOCUMENT">
            Visio 2010 VSDX equivalent of package {@link #CORE_DOCUMENT}
        </member>
        <member name="T:NPOI.OpenXml4Net.OPC.PackagingUriHelper">
             Helper for part and pack Uri.
             @author Julien Chable, CDubet, Kim Ung
             @version 0.1
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackagingUriHelper.packageRootUri">
            Package root Uri.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackagingUriHelper.RELATIONSHIP_PART_EXTENSION_NAME">
            Extension name of a relationship part.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackagingUriHelper.RELATIONSHIP_PART_SEGMENT_NAME">
            Segment name of a relationship part.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackagingUriHelper.PACKAGE_PROPERTIES_SEGMENT_NAME">
            Segment name of the package properties folder.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackagingUriHelper.PACKAGE_CORE_PROPERTIES_NAME">
            Core package properties art name.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackagingUriHelper.FORWARD_SLASH_CHAR">
            Forward slash Uri separator.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackagingUriHelper.FORWARD_SLASH_STRING">
            Forward slash Uri separator.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackagingUriHelper.PACKAGE_RELATIONSHIPS_ROOT_URI">
            Package relationships part Uri
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackagingUriHelper.PACKAGE_RELATIONSHIPS_ROOT_PART_NAME">
            Package relationships part name.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackagingUriHelper.CORE_PROPERTIES_URI">
            Core properties part Uri.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackagingUriHelper.CORE_PROPERTIES_PART_NAME">
            Core properties partname.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackagingUriHelper.PACKAGE_ROOT_URI">
            Root package Uri.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.PackagingUriHelper.PACKAGE_ROOT_PART_NAME">
            Root package part name.
        </member>
        <member name="P:NPOI.OpenXml4Net.OPC.PackagingUriHelper.PackageRootUri">
             Gets the Uri for the package root.
             @return Uri of the package root.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagingUriHelper.IsRelationshipPartURI(System.Uri)">
             Know if the specified Uri is a relationship part name.
             @param partUri
                        Uri to check.
             @return <i>true</i> if the Uri <i>false</i>.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagingUriHelper.GetFilename(System.Uri)">
            Get file name from the specified Uri.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagingUriHelper.GetFilenameWithoutExtension(System.Uri)">
            Get the file name without the trailing extension.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagingUriHelper.GetPath(System.Uri)">
            Get the directory path from the specified Uri.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagingUriHelper.Combine(System.Uri,System.Uri)">
             Combine two URIs.
             @param prefix the prefix Uri
             @param suffix the suffix Uri
             @return the Combined Uri
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagingUriHelper.Combine(System.String,System.String)">
            Combine a string Uri with a prefix and a suffix.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagingUriHelper.RelativizeUri(System.Uri,System.Uri,System.Boolean)">
             Fully relativize the source part Uri against the target part Uri.
             @param sourceURI
                        The source part Uri.
             @param targetURI
                        The target part Uri.
             @return A fully relativize part name Uri ('word/media/image1.gif',
                     '/word/document.xml' => 'media/image1.gif') else
                     <code>null</code>.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagingUriHelper.RelativizeUri(System.Uri,System.Uri)">
             Fully relativize the source part URI against the target part URI.
             @param sourceURI
                        The source part URI.
             @param targetURI
                        The target part URI.
             @return A fully relativize part name URI ('word/media/image1.gif',
                     '/word/document.xml' => 'media/image1.gif') else
                     <code>null</code>.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagingUriHelper.ResolvePartUri(System.Uri,System.Uri)">
             Resolve a source uri against a target.
             @param sourcePartUri
                        The source Uri.
             @param targetUri
                        The target Uri.
             @return The resolved Uri.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagingUriHelper.GetURIFromPath(System.String)">
            Get Uri from a string path.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagingUriHelper.GetSourcePartUriFromRelationshipPartUri(System.Uri)">
             Get the source part Uri from a specified relationships part.
             @param relationshipPartUri
                        The relationship part use to retrieve the source part.
             @return The source part Uri from the specified relationships part.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagingUriHelper.CreatePartName(System.Uri)">
             Create an OPC compliant part name by throwing an exception if the Uri is
             not valid.
             @param partUri
                        The part name Uri to validate.
             @return A valid part name object, else <code>null</code>.
             @throws InvalidFormatException
                         Throws if the specified Uri is not OPC compliant.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagingUriHelper.CreatePartName(System.String)">
             Create an OPC compliant part name.
             @param partName
                        The part name to validate.
             @return The correspondant part name if valid, else <code>null</code>.
             @throws InvalidFormatException
                         Throws if the specified part name is not OPC compliant.
             @see #CreatePartName(Uri)
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagingUriHelper.CreatePartName(System.String,NPOI.OpenXml4Net.OPC.PackagePart)">
             Create an OPC compliant part name by resolving it using a base part.
             @param partName
                        The part name to validate.
             @param relativePart
                        The relative base part.
             @return The correspondant part name if valid, else <code>null</code>.
             @throws InvalidFormatException
                         Throws if the specified part name is not OPC compliant.
             @see #CreatePartName(Uri)
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagingUriHelper.CreatePartName(System.Uri,NPOI.OpenXml4Net.OPC.PackagePart)">
             Create an OPC compliant part name by resolving it using a base part.
             @param partName
                        The part name Uri to validate.
             @param relativePart
                        The relative base part.
             @return The correspondant part name if valid, else <code>null</code>.
             @throws InvalidFormatException
                         Throws if the specified part name is not OPC compliant.
             @see #CreatePartName(Uri)
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagingUriHelper.IsValidPartName(System.Uri)">
             Validate a part Uri by returning a bool.
             ([M1.1],[M1.3],[M1.4],[M1.5],[M1.6])
             (OPC Specifications 8.1.1 Part names) :
             Part Name Syntax
             The part name grammar is defined as follows:
             <i>part_name = 1*( "/" segment )
             segment = 1*( pchar )</i>
             (pchar is defined in RFC 3986)
             @param partUri
                        The Uri to validate.
             @return <b>true</b> if the Uri is valid to the OPC Specifications, else
                     <b>false</b>
             @see #CreatePartName(Uri)
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.PackagingUriHelper.DecodeURI(System.Uri)">
             Decode a Uri by converting all percent encoded character into a String
             character.
             @param uri
                        The Uri to decode.
             @return The specified Uri in a String with converted percent encoded
                     characters.
        </member>
        <!-- Badly formed XML comment ignored for member "M:NPOI.OpenXml4Net.OPC.PackagingUriHelper.ToUri(System.String)" -->
        <!-- Badly formed XML comment ignored for member "M:NPOI.OpenXml4Net.OPC.PackagingUriHelper.Encode(System.String)" -->
        <member name="M:NPOI.OpenXml4Net.OPC.PackagingUriHelper.GetRelationshipPartName(NPOI.OpenXml4Net.OPC.PackagePartName)">
             Build a part name where the relationship should be stored ((ex
             /word/document.xml -> /word/_rels/document.xml.rels)
             @param partName
                        Source part Uri
             @return the full path (as Uri) of the relation file
             @throws InvalidOperationException
                         Throws if the specified Uri is a relationshp part.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.RelationshipSource.AddRelationship(NPOI.OpenXml4Net.OPC.PackagePartName,NPOI.OpenXml4Net.OPC.TargetMode,System.String)">
            Add a relationship to a part (except relationships part).
            @param targetPartName
                       Name of the target part. This one must be relative to the
                       source root directory of the part.
            @param targetMode
                       Mode [Internal|External].
            @param relationshipType
                       Type of relationship.
            @return The newly created and added relationship
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.RelationshipSource.AddRelationship(NPOI.OpenXml4Net.OPC.PackagePartName,NPOI.OpenXml4Net.OPC.TargetMode,System.String,System.String)">
                     * Add a relationship to a part (except relationships part).
                     * Check rule M1.25: The Relationships part shall not have relationships to
                     * any other part. Package implementers shall enforce this requirement upon
                     * the attempt to create such a relationship and shall treat any such
                     * relationship as invalid.
                     *
                     * @param targetPartName
                     *            Name of the target part. This one must be relative to the
                     *            source root directory of the part.
                     * @param targetMode
                     *            Mode [Internal|External].
                     * @param relationshipType
                     *            Type of relationship.
                     * @param id
                     *            Relationship unique id.
                     * @return The newly created and added relationship
                     *
                     * @throws InvalidFormatException
                     *             If the URI point to a relationship part URI.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.RelationshipSource.AddExternalRelationship(System.String,System.String)">
            Adds an external relationship to a part
             (except relationships part).
            The targets of external relationships are not
             subject to the same validity checks that internal
             ones are, as the contents is potentially
             any file, URL or similar.
            @param target External target of the relationship
            @param relationshipType Type of relationship.
            @return The newly created and added relationship
            @see org.apache.poi.OpenXml4Net.opc.RelationshipSource#addExternalRelationship(java.lang.String, java.lang.String)
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.RelationshipSource.AddExternalRelationship(System.String,System.String,System.String)">
            Adds an external relationship to a part
             (except relationships part).
            The targets of external relationships are not
             subject to the same validity checks that internal
             ones are, as the contents is potentially
             any file, URL or similar.
            @param target External target of the relationship
            @param relationshipType Type of relationship.
            @param id Relationship unique id.
            @return The newly created and added relationship
            @see org.apache.poi.OpenXml4Net.opc.RelationshipSource#addExternalRelationship(java.lang.String, java.lang.String)
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.RelationshipSource.ClearRelationships">
            Delete all the relationships attached to this.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.RelationshipSource.RemoveRelationship(System.String)">
            Delete the relationship specified by its id.
            @param id
                       The ID identified the part to delete.
        </member>
        <member name="P:NPOI.OpenXml4Net.OPC.RelationshipSource.Relationships">
            Retrieve all the relationships attached to this.
            @return This part's relationships.
            @throws OpenXml4NetException
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.RelationshipSource.GetRelationship(System.String)">
            Retrieves a package relationship from its id.
            @param id
                       ID of the package relationship to retrieve.
            @return The package relationship
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.RelationshipSource.GetRelationshipsByType(System.String)">
            Retrieve all relationships attached to this part which have the specified
            type.
            @param relationshipType
                       Relationship type filter.
            @return All relationships from this part that have the specified type.
            @throws InvalidFormatException
                        If an error occurs while parsing the part.
            @throws InvalidOperationException
                        If the package is open in write only mode.
        </member>
        <member name="P:NPOI.OpenXml4Net.OPC.RelationshipSource.HasRelationships">
            Knows if the part have any relationships.
            @return <b>true</b> if the part have at least one relationship else
                    <b>false</b>.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.RelationshipSource.IsRelationshipExists(NPOI.OpenXml4Net.OPC.PackageRelationship)">
            Checks if the specified relationship is part of this package part.
            @param rel
                       The relationship to check.
            @return <b>true</b> if the specified relationship exists in this part,
                    else returns <b>false</b>
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.StreamHelper.SaveXmlInStream(System.Xml.XmlDocument,System.IO.Stream)">
             Turning the DOM4j object in the specified output stream.
             @param xmlContent
                        The XML document.
             @param outStream
                        The Stream in which the XML document will be written.
             @return <b>true</b> if the xml is successfully written in the stream,
                     else <b>false</b>.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.StreamHelper.CopyStream(System.IO.Stream,System.IO.Stream)">
             Copy the input stream into the output stream.
             @param inStream
                        The source stream.
             @param outStream
                        The destination stream.
             @return <b>true</b> if the operation succeed, else return <b>false</b>.
        </member>
        <member name="T:NPOI.OpenXml4Net.OPC.TargetMode">
             Specifies whether the target of a PackageRelationship is inside or outside a
             Package.
             @author Julien Chable
             @version 1.0
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.TargetMode.Internal">
            The relationship references a resource that is external to the package.
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.TargetMode.External">
            The relationship references a part that is inside the package.
        </member>
        <member name="T:NPOI.OpenXml4Net.OPC.ZipPackage">
             Physical zip package.
             @author Julien Chable
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.ZipPackage.zipArchive">
            Zip archive, as either a file on disk,
             or a stream
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.ZipPackage.#ctor">
            Constructor. Creates a new ZipPackage.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.ZipPackage.#ctor(System.IO.Stream,NPOI.OpenXml4Net.OPC.PackageAccess)">
             Constructor. <b>Operation not supported.</b>
             @param in
                        Zip input stream to load.
             @param access
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.ZipPackage.#ctor(System.String,NPOI.OpenXml4Net.OPC.PackageAccess)">
             Constructor. Opens a Zip based Open XML document.
             @param path
                        The path of the file to open or create.
             @param access
                        The package access mode.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.ZipPackage.#ctor(System.IO.FileInfo,NPOI.OpenXml4Net.OPC.PackageAccess)">
             Constructor. Opens a Zip based Open XML document.
             @param file
                        The file to open or create.
             @param access
                        The package access mode.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.ZipPackage.#ctor(NPOI.OpenXml4Net.Util.ZipEntrySource,NPOI.OpenXml4Net.OPC.PackageAccess)">
             Constructor. Opens a Zip based Open XML document from
              a custom ZipEntrySource, typically an open archive
              from another system
             @param zipEntry
                        Zip data to load.
             @param access
                        The package access mode.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.ZipPackage.GetPartsImpl">
             Retrieves the parts from this package. We assume that the package has not
             been yet inspect to retrieve all the parts, this method will open the
             archive and look for all parts contain inside it. If the package part
             list is not empty, it will be emptied.
             @return All parts contain in this package.
             @throws InvalidFormatException
                         Throws if the package is not valid.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.ZipPackage.BuildPartName(ICSharpCode.SharpZipLib.Zip.ZipEntry)">
            Builds a PackagePartName for the given ZipEntry,
             or null if it's the content types / invalid part
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.ZipPackage.CreatePartImpl(NPOI.OpenXml4Net.OPC.PackagePartName,System.String,System.Boolean)">
             Create a new MemoryPackagePart from the specified URI and content type
             aram partName The part URI.
             @param contentType
                        The part content type.
             @return The newly created zip package part, else <b>null</b>.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.ZipPackage.RemovePartImpl(NPOI.OpenXml4Net.OPC.PackagePartName)">
             Delete a part from the package
             @throws ArgumentException
                         Throws if the part URI is nulll or invalid.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.ZipPackage.FlushImpl">
            Flush the package. Do nothing.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.ZipPackage.CloseImpl">
             Close and save the package.
             @see #close()
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.ZipPackage.GenerateTempFileName(System.String)">
             Create a unique identifier to be use as a temp file name.
             @return A unique identifier use to be use as a temp file name.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.ZipPackage.RevertImpl">
            Close the package without saving the document. Discard all the changes
            made to this package.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.ZipPackage.GetPartImpl(NPOI.OpenXml4Net.OPC.PackagePartName)">
             Implement the getPart() method to retrieve a part from its URI in the
             current package
             @see #getPart(PackageRelationship)
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.ZipPackage.SaveImpl(System.IO.Stream)">
             Save this package into the specified stream
             @param outputStream
                        The stream use to save this package.
             @see #save(OutputStream)
        </member>
        <member name="P:NPOI.OpenXml4Net.OPC.ZipPackage.ZipArchive">
             Get the zip archive
             @return The zip archive.
        </member>
        <member name="T:NPOI.OpenXml4Net.OPC.ZipPackagePart">
            Zip implementation of a PackagePart.
            @author Julien Chable
            @version 1.0
            @see PackagePart
        </member>
        <member name="F:NPOI.OpenXml4Net.OPC.ZipPackagePart.zipEntry">
            The zip entry corresponding to this part.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.ZipPackagePart.#ctor(NPOI.OpenXml4Net.OPC.OPCPackage,NPOI.OpenXml4Net.OPC.PackagePartName,System.String)">
            Constructor.
            @param container
                       The container package.
            @param partName
                       Part name.
            @param contentType
                       Content type.
            @throws InvalidFormatException
                        Throws if the content of this part invalid.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.ZipPackagePart.#ctor(NPOI.OpenXml4Net.OPC.OPCPackage,ICSharpCode.SharpZipLib.Zip.ZipEntry,NPOI.OpenXml4Net.OPC.PackagePartName,System.String)">
            Constructor.
            @param container
                       The container package.
            @param zipEntry
                       The zip entry corresponding to this part.
            @param partName
                       The part name.
            @param contentType
                       Content type.
            @throws InvalidFormatException
                        Throws if the content of this part is invalid.
        </member>
        <member name="P:NPOI.OpenXml4Net.OPC.ZipPackagePart.ZipArchive">
            Get the zip entry of this part.
            @return The zip entry in the zip structure coresponding to this part.
        </member>
        <member name="M:NPOI.OpenXml4Net.OPC.ZipPackagePart.GetInputStreamImpl">
            Implementation of the getInputStream() which return the inputStream of
            this part zip entry.
            @return Input stream of this part zip entry.
        </member>
        <member name="T:NPOI.OpenXml4Net.Util.ZipEntrySource">
            An Interface to make getting the different bits
             of a Zip File easy.
            Allows you to get at the ZipEntries, without
             needing to worry about ZipFile vs ZipInputStream
             being annoyingly very different.
        </member>
        <member name="P:NPOI.OpenXml4Net.Util.ZipEntrySource.Entries">
            Returns an Enumeration of all the Entries
        </member>
        <member name="M:NPOI.OpenXml4Net.Util.ZipEntrySource.GetInputStream(ICSharpCode.SharpZipLib.Zip.ZipEntry)">
            Returns an InputStream of the decompressed
             data that makes up the entry
        </member>
        <member name="M:NPOI.OpenXml4Net.Util.ZipEntrySource.Close">
            Indicates we are done with reading, and
             resources may be freed
        </member>
        <member name="P:NPOI.OpenXml4Net.Util.ZipEntrySource.IsClosed">
            Has close been called already?
        </member>
        <member name="T:NPOI.OpenXml4Net.Util.ZipFileZipEntrySource">
            A ZipEntrySource wrapper around a ZipFile.
            Should be as low in terms of memory as a
             normal ZipFile implementation is.
        </member>
        <member name="T:NPOI.OpenXml4Net.Util.ZipInputStreamZipEntrySource">
            Provides a way to get at all the ZipEntries
             from a ZipInputStream, as many times as required.
            Allows a ZipInputStream to be treated much like
             a ZipFile, for a price in terms of memory.
            Be sure to call {@link #close()} as soon as you're
             done, to free up that memory!
        </member>
        <member name="M:NPOI.OpenXml4Net.Util.ZipInputStreamZipEntrySource.#ctor(ICSharpCode.SharpZipLib.Zip.ZipInputStream)">
            Reads all the entries from the ZipInputStream
             into memory, and closes the source stream.
            We'll then eat lots of memory, but be able to
             work with the entries at-will.
        </member>
        <member name="T:NPOI.OpenXml4Net.Util.ZipInputStreamZipEntrySource.EntryEnumerator">
            Why oh why oh why are Iterator and Enumeration
             still not compatible?
        </member>
        <member name="T:NPOI.OpenXml4Net.Util.ZipInputStreamZipEntrySource.FakeZipEntry">
            So we can close the real zip entry and still
             effectively work with it.
            Holds the (decompressed!) data in memory, so
             close this as soon as you can!
        </member>
        <member name="T:NPOI.Openxml4Net.Exceptions.NotOfficeXmlFileException">
            This exception is thrown when we try to open a file that doesn't
             seem to actually be an OOXML (Office Open XML) file After all
        </member>
        <member name="T:NPOI.Openxml4Net.Exceptions.ODFNotOfficeXmlFileException">
            This exception is thrown when we are given an ODF-based file
             (eg OpenOffice .ods) instead of an actually OOXML (Office Open XML) file
        </member>
        <member name="T:NPOI.Openxml4Net.Exceptions.OLE2NotOfficeXmlFileException">
            This exception is thrown when we are given an OLE2-based file
             (eg Excel .xls) instead of an actually OOXML (Office Open XML) file
        </member>
        <member name="F:NPOI.Util.XMLConstants.NULL_NS_URI">
             <p>Namespace URI to use to represent that there is no Namespace.</p>
             <p>Defined by the Namespace specification to be "".</p>
             @see <a href="http://www.w3.org/TR/REC-xml-names/#defaulting">
             Namespaces in XML, 5.2 Namespace Defaulting</a>
        </member>
        <member name="F:NPOI.Util.XMLConstants.DEFAULT_NS_PREFIX">
             <p>Prefix to use to represent the default XML Namespace.</p>
             <p>Defined by the XML specification to be "".</p>
             @see <a
             href="http://www.w3.org/TR/REC-xml-names/#ns-qualnames">
             Namespaces in XML, 3. Qualified Names</a>
        </member>
        <member name="F:NPOI.Util.XMLConstants.XML_NS_URI">
             <p>The official XML Namespace name URI.</p>
             <p>Defined by the XML specification to be
             "{@code http://www.w3.org/XML/1998/namespace}".</p>
             @see <a
             href="http://www.w3.org/TR/REC-xml-names/#ns-qualnames">
             Namespaces in XML, 3. Qualified Names</a>
        </member>
        <!-- Badly formed XML comment ignored for member "F:NPOI.Util.XMLConstants.XML_NS_PREFIX" -->
        <member name="F:NPOI.Util.XMLConstants.XMLNS_ATTRIBUTE_NS_URI">
             <p>The official XML attribute used for specifying XML Namespace
             declarations, {@link #XMLNS_ATTRIBUTE
             XMLConstants.XMLNS_ATTRIBUTE}, Namespace name URI.</p>
             <p>Defined by the XML specification to be
             "{@code http://www.w3.org/2000/xmlns/}".</p>
             @see <a
             href="http://www.w3.org/TR/REC-xml-names/#ns-qualnames">
             Namespaces in XML, 3. Qualified Names</a>
             @see <a
             href="http://www.w3.org/XML/xml-names-19990114-errata">
             Namespaces in XML Errata</a>
        </member>
        <member name="F:NPOI.Util.XMLConstants.XMLNS_ATTRIBUTE">
             <p>The official XML attribute used for specifying XML Namespace
             declarations.</p>
             <p>It is <strong><em>NOT</em></strong> valid to use as a
             prefix.  Defined by the XML specification to be
             "{@code xmlns}".</p>
             @see <a
             href="http://www.w3.org/TR/REC-xml-names/#ns-qualnames">
             Namespaces in XML, 3. Qualified Names</a>
        </member>
        <!-- Badly formed XML comment ignored for member "F:NPOI.Util.XMLConstants.W3C_XML_SCHEMA_NS_URI" -->
        <member name="F:NPOI.Util.XMLConstants.W3C_XML_SCHEMA_INSTANCE_NS_URI">
             <p>W3C XML Schema Instance Namespace URI.</p>
             <p>Defined to be "{@code http://www.w3.org/2001/XMLSchema-instance}".</p>
             @see <a href=
              "http://www.w3.org/TR/xmlschema-1/#Instance_Document_Constructions">
              XML Schema Part 1:
              Structures, 2.6 Schema-Related Markup in Documents Being Validated</a>
        </member>
        <member name="F:NPOI.Util.XMLConstants.W3C_XPATH_DATATYPE_NS_URI">
             <p>W3C XPath Datatype Namespace URI.</p>
             <p>Defined to be "{@code http://www.w3.org/2003/11/xpath-datatypes}".</p>
             @see <a href="http://www.w3.org/TR/xpath-datamodel">XQuery 1.0 and XPath 2.0 Data Model</a>
        </member>
        <!-- Badly formed XML comment ignored for member "F:NPOI.Util.XMLConstants.XML_DTD_NS_URI" -->
        <member name="F:NPOI.Util.XMLConstants.RELAXNG_NS_URI">
             <p>RELAX NG Namespace URI.</p>
             <p>Defined to be "{@code http://relaxng.org/ns/structure/1.0}".</p>
             @see <a href="http://relaxng.org/spec-20011203.html">RELAX NG Specification</a>
        </member>
    </members>
</doc>
packages/NPOI.2.5.6/lib/net45/NPOI.OpenXml4Net.pdb
Binary files differ
packages/NPOI.2.5.6/lib/net45/NPOI.OpenXmlFormats.pdb
Binary files differ
packages/NPOI.2.5.6/lib/net45/NPOI.XML
¶Ô±ÈÐÂÎļþ
ÎļþÌ«´ó
packages/NPOI.2.5.6/lib/net45/NPOI.pdb
Binary files differ
packages/NPOI.2.5.6/lib/netstandard2.0/NPOI.OOXML.pdb
Binary files differ
packages/NPOI.2.5.6/lib/netstandard2.0/NPOI.OOXML.xml
¶Ô±ÈÐÂÎļþ
ÎļþÌ«´ó
packages/NPOI.2.5.6/lib/netstandard2.0/NPOI.OpenXml4Net.pdb
Binary files differ
packages/NPOI.2.5.6/lib/netstandard2.0/NPOI.OpenXmlFormats.pdb
Binary files differ
packages/NPOI.2.5.6/lib/netstandard2.0/NPOI.pdb
Binary files differ
packages/NPOI.2.5.6/lib/netstandard2.0/NPOI.xml
¶Ô±ÈÐÂÎļþ
ÎļþÌ«´ó
packages/NPOI.2.5.6/lib/netstandard2.1/NPOI.OOXML.pdb
Binary files differ
packages/NPOI.2.5.6/lib/netstandard2.1/NPOI.OOXML.xml
¶Ô±ÈÐÂÎļþ
ÎļþÌ«´ó
packages/NPOI.2.5.6/lib/netstandard2.1/NPOI.OpenXml4Net.pdb
Binary files differ
packages/NPOI.2.5.6/lib/netstandard2.1/NPOI.OpenXmlFormats.pdb
Binary files differ
packages/NPOI.2.5.6/lib/netstandard2.1/NPOI.pdb
Binary files differ
packages/NPOI.2.5.6/lib/netstandard2.1/NPOI.xml
¶Ô±ÈÐÂÎļþ
ÎļþÌ«´ó
packages/NPOI.2.5.6/logo/120_120.jpg
packages/NPOI.2.5.6/logo/240_240.png
packages/NPOI.2.5.6/logo/32_32.jpg
packages/NPOI.2.5.6/logo/60_60.jpg
packages/Portable.BouncyCastle.1.8.9/.signature.p7s
Binary files differ
packages/Portable.BouncyCastle.1.8.9/Portable.BouncyCastle.1.8.9.nupkg
Binary files differ
packages/Portable.BouncyCastle.1.8.9/lib/net40/BouncyCastle.Crypto.xml
¶Ô±ÈÐÂÎļþ
ÎļþÌ«´ó
packages/Portable.BouncyCastle.1.8.9/lib/netstandard2.0/BouncyCastle.Crypto.xml
¶Ô±ÈÐÂÎļþ
ÎļþÌ«´ó
packages/SharpZipLib.1.3.3/.signature.p7s
Binary files differ
packages/SharpZipLib.1.3.3/SharpZipLib.1.3.3.nupkg
Binary files differ
packages/SharpZipLib.1.3.3/images/sharpziplib-nuget-256x256.png
packages/SharpZipLib.1.3.3/lib/net45/ICSharpCode.SharpZipLib.pdb
Binary files differ
packages/SharpZipLib.1.3.3/lib/net45/ICSharpCode.SharpZipLib.xml
¶Ô±ÈÐÂÎļþ
ÎļþÌ«´ó
packages/SharpZipLib.1.3.3/lib/netstandard2.0/ICSharpCode.SharpZipLib.pdb
Binary files differ
packages/SharpZipLib.1.3.3/lib/netstandard2.0/ICSharpCode.SharpZipLib.xml
¶Ô±ÈÐÂÎļþ
ÎļþÌ«´ó
packages/SharpZipLib.1.3.3/lib/netstandard2.1/ICSharpCode.SharpZipLib.pdb
Binary files differ
packages/SharpZipLib.1.3.3/lib/netstandard2.1/ICSharpCode.SharpZipLib.xml
¶Ô±ÈÐÂÎļþ
ÎļþÌ«´ó