cccc 发表于 2024-7-29 11:18:08

spread windows forms 14关于gcexcel替换字符串的问题

本帖最后由 cccc 于 2024-8-1 13:58 编辑

   替换自定义函数
      public void ReplaceStr_GC(GrapeCity.Documents.Excel.IRange range_Ref, string strFind, string strRepl, int iLookAt = 2)
      {
            try
            {
                ReplaceOptions replaceOptions = new ReplaceOptions();
                if (iLookAt == 2)
                { replaceOptions.LookAt = LookAt.Part; }
                else
                { replaceOptions.LookAt = LookAt.Whole; }
                replaceOptions.MatchByte = false;
                replaceOptions.MatchCase = false;
                range_Ref.Replace(strFind, strRepl, replaceOptions);//替换
            }
            catch(Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
      }
      调用替换自定义函数,替换含有"*"的字符串
       GrapeCity.Documents.Excel.IRange rangetest = rng1.Columns;
      ReplaceStr_GC(rangetest, "*", "");
      或 ReplaceStr_GC(rangetest, "~*~", "");
       都会报“不支持通配符”的错误。要如何修改,gcexcel可以实现对区域带*的字符串替换成空。

Richard.Ma 发表于 2024-7-29 18:06:09

GCExcel的查找和替换目前确实你不支持通配符,你说的“*”是想要按照通配符来通配,还是说实际的字符串就是“*”

cccc 发表于 2024-7-30 09:18:18

Richard.Ma 发表于 2024-7-29 18:06
GCExcel的查找和替换目前确实你不支持通配符,你说的“*”是想要按照通配符来通配,还是说实际的字符串就是 ...

是实际的字符串,比如某个单元格的值就是“*”,我要把区域内出现“*”的值替换为空字符串。

Joestar.Xu 发表于 2024-7-30 14:07:16

收到,这边调研一下看看,后续有进展会在本帖中回复您哈。

Richard.Ma 发表于 2024-7-31 12:25:00

本帖最后由 Richard.Ma 于 2024-7-31 12:32 编辑

你可以使用Find方法,加上转移符号来查找sheet.UsedRange.Find("~*");

在这里,波浪号(`~`)作为转义字符,用于告诉Excel将后面的星号视为普通字符,而不是通配符。

可以找到后,再自己替换,目前replace这块确实有点问题


cccc 发表于 2024-7-31 15:17:08

Richard.Ma 发表于 2024-7-31 12:25
你可以使用Find方法,加上转移符号来查找sheet.UsedRange.Find("~*");

在这里,波浪号(`~`)作为转义字 ...

好,谢谢。

Richard.Ma 发表于 2024-7-31 16:57:48

不客气

页: [1]
查看完整版本: spread windows forms 14关于gcexcel替换字符串的问题