[]
        
(Showing Draft Content)

查找和替换

在有着大量行列数据的电子表格中,在整个工作表中查找特定的数据块变得很困难,编辑这些信息更加麻烦。“查找和替换”功能使用户可以轻松地在几秒钟内找到并替换信息,从而节省时间和精力。

GcExcel使用户能够定位单元格区域中的数据,在工作表中查找特定信息(及其所有引用),并用所需信息替换。使用此功能,您可以在以下方法的帮助下,查找和替换某个范围内的特定值和公式。

  • IRange接口的find方法可用于查找第一个、下一个或先前匹配的单元格范围。

  • IRange接口的replace方法可以用来替换单元格范围内的数据。

用户可以查找基本信息,定位不同格式的单元格,使用各种选项搜索数据,枚举工作表中的所有事件,匹配数据占用的字节数,并在不同位置查找特定数据,包括注释、公式和文本。此外,还可以替换基本信息,通过在循环中执行搜索操作进行替换,还可以使用多个选项(如匹配大小写、匹配整字和匹配字节)进行替换。

请参阅以下示例代码,以便从多个位置开始查找目标范围中的单元格,并用所需信息替换它。

// Initialize workbook
Workbook workbook = new Workbook();
        
// Fetch default worksheet
IWorksheet worksheet = workbook.getWorksheets().get(0);

Object data = new Object[][] { 
{ "Name", "City", "Birthday", "Sex", "Weight", "Height", "Age" },
{ "Bob", "newyork", new GregorianCalendar(1968, 6, 8), "male", 80, 180, 56 },
{ "Betty", "newyork", new GregorianCalendar(1972, 7, 3), "female", 72, 168, 45 },
{ "Gary", "NewYork", new GregorianCalendar(1964, 3, 2), "male", 71, 179, 50 },
{ "Hunk", "Washington", new GregorianCalendar(1972, 8, 8), "male", 80, 171, 59 },
{ "Cherry", "Washington", new GregorianCalendar(1986, 2, 2), "female", 58, 161, 34 },
{ "Coco", "Virginia", new GregorianCalendar(1982, 12, 12), "female", 58, 181, 45 },
{ "Lance", "Chicago", new GregorianCalendar(1962, 3, 12), "female", 49, 160, 57 },
{ "Eva", "Washington", new GregorianCalendar(1993, 2, 5), "female", 71, 180, 81 } };

// Set data
worksheet.getRange("A1:G9").setValue(data);
worksheet.getRange("I10:P19").setValue(data);
worksheet.getRange("A21:G29").setValue(data);

String what = "newyork";
String replacement = "NewYork";
ReplaceOptions ro = new ReplaceOptions();
ro.setMatchCase(true);

// Specify range to search in
IRange searchRange = worksheet.getRange("A1:G9,I10:P19");
        
// Using Replace method to replace content in a specific range
searchRange.replace(what, replacement, ro);

// Saving workbook to xlsx
workbook.save("FindAndReplaceData.xlsx", SaveFileFormat.Xlsx);

请参阅以下示例代码,以查找公式为“SUM”的单元格,并同时用另一个公式“PRODUCT”替换。

// Initialize workbook
Workbook workbook = new Workbook();
        
// Fetch default worksheet
IWorksheet worksheet = workbook.getWorksheets().get(0);
        
// Set formulas
worksheet.getRange("A1:H5").setFormula("SUM(6,10)");

FindOptions fo = new FindOptions();
fo.setLookIn(FindLookIn.Formulas);

IRange range = null;
        
// Specify range to search in formulas
IRange searchRange = worksheet.getRange("A1:B4");
do 
{
 range = searchRange.find("SUM", range, fo);
 if (range != null) 
 {
  // Using Replace method to replace formula in searched range
  range.setFormulaArray(range.getFormula().replace("SUM", "PRODUCT"));
 }
} while (range != null);

// Saving workbook to xlsx
workbook.save("FindAndReplaceFormulas.xlsx", SaveFileFormat.Xlsx);