从Gembox电子表格中循环Findtext方法

时间:2014-03-25 05:31:41

标签: c# excel loops visual-studio-2013 gembox-spreadsheet

从网站上取一个例子,尝试创建一个循环,根据他们的单元格内容标记某些单元格,这些单元格内容将通过Gembox组件中的FindText方法识别

我的目标是

  • 找到关键字部分匹配的单元格
  • 转到该行的最后一栏
  • 将该行的颜色更改为特定颜色
  • 继续记下重复上一个命令的文件
  • 文件结束后停止

搜索工作的意义在于找到查询然后执行我指示它做的事情

但在第一次搜索结果

后停止

有没有办法使用此方法循环搜索,或者我可以使用if和另一种方法来测试单元格 看它是否有我正在搜索的部分内容?

这是基于我的知识的链接

http://www.gemboxsoftware.com/SampleExplorer/Spreadsheet/AdvancedFeatures/Searching?tab=cs

再次感谢你们

下面是我在研究系统如何在1个查询基础上工作,就像对整个文档这样做

using System;
using System.Drawing;
using System.Text;
using System.IO;
using GemBox.Spreadsheet;
using System.Data;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace autoexcel2
{
class Program
{
    [STAThread]
    static void Main(string[] args)
    {
        //IF USING PRO PUT YOUR SERIAL BELOW
        SpreadsheetInfo.SetLicense("FREE-lIMITED-KEY");

        ExcelFile ef = ExcelFile.Load("sample.xlsx");

        string searchText = "pharma";
        var ws = ef.Worksheets[0];

        StringBuilder sb = new StringBuilder();

        int row;
        int col;

        ws.Cells.FindText(searchText, false, false, out row, out col);;



        if (row == -1 || col == -1)
            sb.AppendLine("cant find nada");
            Console.WriteLine(sb.ToString());
        else
        {
            ws.Cells[row,5].Style.FillPattern.SetSolid(Color.Aqua);

        }


        ef.Save("done.xlsx");




    }
 }
}

1 个答案:

答案 0 :(得分:1)

您好,请尝试以下方法:

    ExcelFile ef = ExcelFile.Load("sample.xlsx");

    string searchText = "pharma";
    var ws = ef.Worksheets[0];

    foreach (var currnetRow in ws.Rows)
    {
        int row;
        int col;
        currnetRow.Cells.FindText(searchText, false, false, out row, out col);

        if (row != -1 || col != -1)
            currnetRow.AllocatedCells.Last().Style.FillPattern.SetSolid(Color.Aqua);
    }

    ef.Save("done.xlsx");

我希望这会有所帮助。

的问候,
马里奥