.NET Word模板-根据特殊字符定位替换table或者文本

获取Word文件中,特殊字符标记中间文字。


        /// <summary>
        ///  获取路径下所有特殊字符包含的数据
        /// </summary>
        /// <param name="tempFile">文件路径</param>
        /// <param name="startstr">开始字符</param>
        /// <param name="endstr">结束字符</param>
        /// <param name="contractID">合同ID</param>
        public void GetWholeString(string tempFile, string startstr, string endstr, int contractID)
        {
   
            T_UserInputVariableServer name = new T_UserInputVariableServer();
            using (FileStream stream = File.OpenRead(tempFile))
            {
   
                XWPFDocument doc = new XWPFDocument(stream);
                List<string> ImportString = new List<string>();
                List<T_UserInputVariable> userInputVariable = new List<T_UserInputVariable>();
                //删除历史变量
                name.DeleteList(name.GetListWhere(t => t.contractID == contractID).ToList());
                foreach (XWPFParagraph item in doc.BodyElements)
                {
   
                    ImportString = MidStrEx(item.Text, startstr, endstr);
                    foreach (var Variable in ImportString)
                    {
   
                        userInputVariable.Add(new T_UserInputVariable()
                        {
   
                            inputVariable = $"{startstr}{Variable}{endstr}",
                        });
                    }
                }
                
            }
        }

获取一个字符串中特殊字符

 /// <summary>
        /// 获取一个字符串中特殊字符
        /// </summary>
        /// <param name="sourse">数据源</param>
        /// <param name="startstr">开始特殊字符</param>
        /// <param name="endstr">结束特殊字符</param>
        /// <returns></returns>
        public static List<string> MidStrEx(string sourse, string startstr, string endstr)
        {
   
            List<string> result = new List<string>();
            string endString = sourse;
            int startindex, endindex;
            try
            {
   
                for (int i = 1; i < 10000; i++)
                {
   
                    startindex = endString.IndexOf(startstr);
                    if (startindex == -1)
                        return result;
                    string tmpstr = endString.Substring(startindex + startstr.Length);
                    endindex = tmpstr.IndexOf(endstr);
                    if (endindex == -1)
                        return result;
                    string a = tmpstr.Remove(endindex);
                    result.Add(a);
                    endString = tmpstr.Substring(endindex + 2);
                }
            }
            catch (Exception ex)
            {
   
                //Log.WriteLog("MidStrEx Err:" + ex.Message);
            }
            return result;
        } 

Json 字符串 转换为 DataTable数据集合

  /// <summary>
        /// Json 字符串 转换为 DataTable数据集合
        /// </summary>
        /// <param name="json"></param>
        /// <returns></returns>
        public DataTable ToDataTableTwo(string json)
        {
   
            DataTable dataTable = new DataTable();  //实例化
            DataTable result;
            try
            {
   
                JavaScriptSerializer javaScriptSerializer = new JavaScriptSerializer();
                javaScriptSerializer.MaxJsonLength = Int32.MaxValue; //取得最大数值
                ArrayList arrayList = javaScriptSerializer.Deserialize<ArrayList>(json);
                if (arrayList.Count > 0)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值