从网站上取一个例子,尝试创建一个循环,根据他们的单元格内容标记某些单元格,这些单元格内容将通过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");
}
}
}
答案 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");
我希望这会有所帮助。
的问候,
马里奥