⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 getters.cs

📁 将网页生成word文档
💻 CS
字号:
using System;
using System.Collections.Generic;
using System.Text;
using System.Reflection;
using System.IO;
using System.Data;
using System.Xml.Xsl;
using System.Xml;
using System.Xml.XPath;

namespace GeneratingMicrosoftWordReports.Reports
{
    /// <summary>
    /// Enables working with embedded XSDs, XSLTs, XMLs...
    /// </summary>
    internal class Getters
    {
        private static string _namespace = typeof(Getters).Namespace;
        private static Assembly _assembly = Assembly.GetExecutingAssembly();

        /// <summary>
        /// XML schema as DataSet for easier data filling
        /// </summary>
        /// <param name="xsdName">Name of XML Schema</param>
        /// <returns>DataSet representation of choosen XSD</returns>
        public static DataSet GetXsdSchema(string xsdName)
        {
            using (Stream s = _assembly.GetManifestResourceStream(
                string.Format("{0}.Xsd.{1}.xsd", _namespace, xsdName)))
            {
                DataSet dsToSet = new DataSet();
                dsToSet.ReadXmlSchema(s);
                return dsToSet;
            }
        }

        /// <summary>
        /// Method used for demonstrating Word Report creation - returns data in XML
        /// </summary>
        /// <param name="xmlName">Name of XML</param>
        /// <returns>string containing XML</returns>
        public static string GetTestXml(string xmlName)
        {
            using (StreamReader s = new StreamReader(_assembly.GetManifestResourceStream(
                string.Format("{0}.Xml.{1}.xml", _namespace, xmlName)), Encoding.UTF8))
            {
                return s.ReadToEnd();
            }
        }


        /// <summary>
        /// Creates Word document from XML using XSLT
        /// </summary>
        /// <param name="xmlData">XML filled with data used in report</param>
        /// <param name="xsltName">Name of XSLT embedded in resources</param>
        /// <returns>Resulting Word document as Byte array</returns>
        public static byte[] GetWord(string xmlData, string xsltName)
        {
            //Encoding.UTF8.GetBytes(
            using (StringReader s = new StringReader(xmlData))
            {
                using (XmlReader dataReader = XmlReader.Create(s))
                    return GetWord(dataReader, xsltName);
            }
        }

        /// <summary>
        /// Creates Word document from XML using XSLT
        /// </summary>
        /// <param name="xmlData">Report data as XML</param>
        /// <param name="nameOfXslt">Embedded XSLT transformation used for document creation</param>
        /// <returns>Resulting Word document as Byte array</returns>
        public static byte[] GetWord(XmlReader xmlData, string nameOfXslt)
        {
            // Get XSLT embedded in resources of assembly
            Stream s = _assembly.GetManifestResourceStream(
            string.Format("{0}.Xslt.{1}.xslt", _namespace, nameOfXslt));

            using (XmlReader xsltReader = XmlReader.Create(s))
            {
                return GeneratingMicrosoftWordReports.Engine.Generation.GetWord(xmlData, xsltReader);
            }
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -