Találd meg, javítsd, ellenőrizd: Teljes útmutató az Aspose.Cells Cloud Keresés, csere és hibás hivatkozás API-hoz (.NET / Python / Java / cURL)
“Melyik a 400 költségvetési munkafüzetünk közül még mindig azt írja, hogy Old Vendor Ltd?” “Cserélje le minden
{{COMPANY}}helyőrzőt ebben a sablonban.” “Van még valamelyik jelentésünkben hivatkozás arra a domainre, amelyet tavaly megszüntettünk?” — három nagyon különböző kérdés, egy közös válasz: egy REST hívás, amely felhőben olvassa és felülírja a táblázatokat, anélkül, hogy bárhol is telepítve lenne az Excel.
A táblázat tartalom problémák szinte minden adatintenzív kódbázisban megjelennek:
- Content audit — minden cellát, alakzatot vagy hiperhivatkozást keresve, amely elavult terméknevet, régi irodacímet vagy elavult jogi entitást említ;
- Template rendering — a
{{PLACEHOLDER}}tokenek kitöltése a táblázatokban, mielőtt a munkafüzetet elküldenénk az ügyfélnek; - Link rot — annak ellenőrzése, hogy a munkafüzetbe beágyazott URL-ek még mindig feloldódnak-e, mielőtt egy megfelelőségi vagy archiválási feladat jóváhagyja;
- Bulk correction — egy elütés vagy helytelenül írt oszlopérték javítása több tucat táblázatban, vagy csak egy táblázat egy régiójára korlátozva.
A hagyományos lehetőségek — egy saját gépen futó szkriptkönyvtár, egy Excel makró vagy egy COM komponens egy Windows szerveren — mind azt jelentik, hogy te vagy az, aki a táblázatkezelő logikát hosztolja és méretezi. Aspose.Cells Cloud egyszerű REST-re alakítja: küldj egy fájlt (vagy csak egy fájlnevet), kapj egyezéseket — vagy egy javított fájlt — vissza.
Ez a bejegyzés végigvezet a core SearchController által kiexponált API-ken az Aspose.Cells Cloud mikroservice-ben (forrás: src/Aspose.Cells.Cloud.MicroService/Controllers/SearchController.cs), futtatható példákkal cURL és C# (.NET) nyelven, valamint megjegyzésekkel Python és Java felhasználók számára.
1. Mit tud a SearchController?
SearchController lefedi a három képességcsaládot, amelyek mindegyike több hatókörben érhető el:
| Család | Mit csinál | Módosítja a munkafüzetet? |
|---|---|---|
| Search | Visszaadja a lekérdezésnek megfelelő szövegelemeket — a munkalappal és a cella/forma/hyperlink pozícióval együtt | Nem |
| Replace | Kicseréli a megtalált szöveget, majd vagy visszaadja a javított fájlt streamként, vagy elmenti a felhő tárolóba | Igen |
| Broken links | Érvényesíti a munkafüzetben található minden http(s) hiperlinket, és visszaadja azokat, amelyek nem oldhatók fel |
Nem |
És minden család négy hatókör-ben van kitéve, ami a végpontlista hosszát eredményezi:
| Hatókör | Keresés | Csere | Törött hivatkozások |
|---|---|---|---|
| Helyi fájl → online feldolgozás (feltöltés a kérés törzsében) | PUT /v4.0/cells/search/content |
PUT /v4.0/cells/replace/content |
PUT /v4.0/cells/search/broken-links |
| Teljes munkafüzet a felhő tárolóban | PUT /v4.0/cells/{name}/search/content |
PUT /v4.0/cells/{name}/replace/content |
PUT /v4.0/cells/{name}/search/broken-links |
| Egyetlen munkalap a felhő tárolóban | PUT /v4.0/cells/{name}/worksheets/{worksheet}/search/content |
PUT /v4.0/cells/{name}/worksheets/{worksheet}/replace/content |
PUT /v4.0/cells/{name}/worksheets/{worksheet}/search/broken-links |
| Egyetlen tartomány a felhő tárolóban | PUT /v4.0/cells/{name}/worksheets/{worksheet}/ranges/{cellArea}/search/content |
PUT /v4.0/cells/{name}/worksheets/{worksheet}/ranges/{cellArea}/replace/content |
PUT /v4.0/cells/{name}/worksheets/{worksheet}/ranges/{cellArea}/search/broken-links |
Két további bónusz végpont, amely minden szövegelem kiír egy munkafüzetben — lásd a §4 részt:
| Cél | Végpont |
|---|---|
| A felhőben lévő fájl összes szöveges eleme | PUT /v4.0/cells/{name}/search/content/all-textitems |
| A helyi feltöltés összes szöveges eleme | PUT /v4.0/cells/search/content/all-textitems |
Implementációs megjegyzés: az útvonalak előtagja a
v{version:apiVersion}/cellsés ez a vezérlő[ApiVersion("4.0")], így az élő hívások így néznek ki:https://api.aspose.cloud/v4.0/cells/.... Ennek a vezérlőnek minden műveletePUT— még a csak olvasásra szolgáló keresések is — mivel a keresés úgy van modellezve, mint egy erőforrással szemben benyújtott művelet, nem pedig egy gyorsítótárazhatóGET.
A két működési mód, és miért fontosak
A vezérlő díszítője minden műveletet ellát, és a díszítő pontosan megmondja, honnan származik a fájl:
[OnlineOperation]— állapot nélküli. A munkafüzetet a kérés törzsében (multipart) töltöd fel, a szerver memóriában dolgozza fel, és semmi nem kerül tárolásra a felhőben. Tökéletes a “csak mondd meg, mi van ebben a fájlban” feladatra, valamint egy alkalmas sablonosításhoz.[CloudFileOperation]— tároláson alapuló. A szerver a{name}-t a felhő tárolóból (opcionálisan afolder=alatt) lekéri, elvégzi a feladatot, és — a helyettesítési műveleteknél — az eredményt közvetlenül visszaírja. Semmi sem kerül a gépedre.
Ez az egyetlen különbség, valamint a {worksheet} / {cellArea} útvonal szegmensek, alkotják a teljes mentális modellt. A bejegyzés többi része csak a részletek.
2. A válaszmodellek, amelyeket ténylegesen feldolgozni fogsz
Mindkét keresési család egy kis, lapos, könnyen köthető alakzatot ad vissza. A keresés SearchResponse‑t ad vissza:
{
"Code": 200,
"Status": "OK",
"TextItems": [
{
"Filename": "Book1.xlsx",
"Worksheet": "Q3 Forecast",
"Position": "Cell:B7",
"Content": "Old Vendor Ltd"
},
{
"Filename": "Book1.xlsx",
"Worksheet": "Q3 Forecast",
"Position": "Shape:TextBox 3",
"Content": "Prepared by Old Vendor Ltd"
}
]
}
A törött hivatkozás keresés visszaadja a BrokenLinksResponse:
{
"Code": 200,
"Status": "OK",
"BrokenLinks": [
{
"Filename": "Book1.xlsx",
"Worksheet": "Links",
"Position": "Hyperlink:Sheet1!B4",
"LinkAddress": "https://retired-domain.example.com/report"
}
]
}
Két dologra érdemes azonnal felhívni a figyelmet:
-
Positionegy címkézett hely, nem csak egy cellacím.Cell:,Hyperlink:vagyShape:előtaggal rendelkezik, ami lehetővé teszi, hogy egy egyszerű lapos lista megmondja, milyen típusú elem egyezett. Ez a címke a különbség a “fix cell B7” és a “fix the text box sitting over B7” között. -
Mindkét modell önmagát leíró a jelentéskészítéshez —
FilenameésWorksheetminden elemnél visszaadódik, így a sok munkafüzet átvizsgálása egy audit táblába fűzhető össze utófeldolgozás nélkül.
3. Két dolog, amire szükséged van, mielőtt elkezdenél
- Regisztráljon egy ingyenes fiókot az Aspose Cloud Dashboard oldalon, és hozzon létre egy alkalmazást a
Client IDésClient Secretmegszerzéséhez (az SDK-k automatikusan cserélik ezeket JWT-re – nincs szükség saját auth fejlécek építésére). - Telepítse az SDK-t a választott nyelvéhez:
<!-- .NET -->
<PackageReference Include="Aspose.Cells-Cloud" Version="25.x" />
# Python
pip install asposecellscloud
<!-- Java (Maven) — note: NOT on Maven Central, so the Aspose repo below is required -->
<repositories>
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>https://repository.aspose.cloud/repo/</url>
</repository>
</repositories>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-cells-cloud</artifactId>
<version>26.8</version>
</dependency>
Nem szükséges SDK? Minden egyszerű REST, így a cURL is ugyanolyan jól működik (lásd alább). A keresés/csere/hibás hivatkozás család is elérhető típusos SDK kérésmodelleken keresztül —
SearchSpreadsheetContentRequest,ReplaceContentInRemoteRangeRequestés társai — ami a lenti C# példakódrészletekben van használva.
4. Forgatókönyv A: Helyi fájl keresése online (semmi nem tárolódik)
Ez a PUT /v4.0/cells/search/content — töltsd fel a munkafüzetet, és kapd vissza a találatokat. Nincs felhő tárolás, nincs takarítás, nincs másolat hátra.
① cURL
# 1) First, get a token
curl -X POST "https://api.aspose.cloud/connect/token" \
-d "grant_type=client_credentials" \
-d "client_id=YOUR_CLIENT_ID" \
-d "client_secret=YOUR_CLIENT_SECRET"
# 2) Find "Old Vendor Ltd" anywhere in a local workbook
curl -X PUT "https://api.aspose.cloud/v4.0/cells/search/content" \
-H "Authorization: Bearer $TOKEN" \
--data-urlencode "searchText=Old Vendor Ltd" \
--data-urlencode "ignoringCase=true" \
-F "file=@Book1.xlsx"
Szűkítse egy lapra, vagy egy lap egy régiójára, két további lekérdezési paraméterrel:
# Only "Q3 Forecast", only the range A1:F40
curl -X PUT "https://api.aspose.cloud/v4.0/cells/search/content" \
-H "Authorization: Bearer $TOKEN" \
--data-urlencode "searchText=Old Vendor Ltd" \
--data-urlencode "worksheet=Q3 Forecast" \
--data-urlencode "cellArea=A1:F40" \
-F "file=@Book1.xlsx"
② C# / .NET
using Aspose.Cells.Cloud.SDK.Api;
using Aspose.Cells.Cloud.SDK.Request;
var cellsApi = new CellsApi("YOUR_CLIENT_ID", "YOUR_CLIENT_SECRET");
// Local file, whole workbook
var request = new SearchSpreadsheetContentRequest(
spreadsheet: "C:/audit/Book1.xlsx", // local file path
searchText: "Old Vendor Ltd",
ignoringCase: true);
SearchResponse response = cellsApi.SearchSpreadsheetContent(request);
foreach (var item in response.TextItems)
{
Console.WriteLine($"{item.Worksheet} | {item.Position} | {item.Content}");
}
// Same call, scoped to one sheet and one range
var scoped = new SearchSpreadsheetContentRequest(
spreadsheet: "C:/audit/Book1.xlsx",
searchText: "Old Vendor Ltd",
ignoringCase: true,
sheetname: "Q3 Forecast",
cellarea: "A1:F40");
A kérésmodellek szintén elérhetővé teszik a
password(védett munkafüzet megnyitása) és aregoin(régió/nyelvi beállítás) paramétereket — ugyanazok az opcionális paraméterek, amelyeket a felhő‑tároló változatoknál astorageNamenéven látható. Vegye figyelembe, hogy a .NET SDK megtartja aregoinhelyesírást; a Python SDK ugyanazt a két beállítástpasswordésregionnéven hívja.
③ Python / Java
A Python SDK ugyanazt az endpoint családot csomagolja, a kérés‑modell mezői egy‑az‑egyben leképeződnek a C#‑os megfelelőikre, de snake_case formátumban:
from asposecellscloud.apis.cells_api import CellsApi
from asposecellscloud.requests import (
SearchSpreadsheetContentRequest,
SearchContentInRemoteRangeRequest,
)
instance = CellsApi("YOUR_CLIENT_ID", "YOUR_CLIENT_SECRET")
# Local upload — returned items carry Worksheet / Position / Content
local = instance.search_spreadsheet_content(
SearchSpreadsheetContentRequest(
"Book1.xlsx", "Old Vendor Ltd",
ignoring_case=True, worksheet="Q3 Forecast", cell_area="A1:F40"))
# Range-scoped search of a file already in cloud storage
remote = instance.search_content_in_remote_range(
SearchContentInRemoteRangeRequest(
"Book1.xlsx", "Q3 Forecast", "A1:F40", "Old Vendor Ltd",
ignoring_case=True, folder="Reports"))
for item in remote.text_items:
print(item.worksheet, item.position, item.content)
A Java SDK ugyanilyen felépítésű, a Request objektumok setterekkel épülnek:
import com.aspose.cloud.cells.api.CellsApi;
import com.aspose.cloud.cells.model.SearchResponse;
import com.aspose.cloud.cells.request.SearchContentInRemoteRangeRequest;
public class SearchDemo {
public static void main(String[] args) throws Exception {
CellsApi api = new CellsApi("YOUR_CLIENT_ID", "YOUR_CLIENT_SECRET");
SearchContentInRemoteRangeRequest req = new SearchContentInRemoteRangeRequest();
req.setName("Book1.xlsx");
req.setWorksheet("Q3 Forecast");
req.setCellArea("A1:F40");
req.setSearchText("Old Vendor Ltd");
req.setIgnoringCase(true);
req.setFolder("Reports");
SearchResponse response = api.searchContentInRemoteRange(req);
response.getTextItems().forEach(i ->
System.out.println(i.getWorksheet() + " | " + i.getPosition() + " | " + i.getContent()));
}
}
Ha nyers REST-et használsz, a fentebb szereplő cURL a teljes szerződés — a multipart mezőnek egyszerűen a fájlnevet kell tartalmaznia, mivel a szolgáltatás a munkafüzet nevét (és ezáltal a formátumát) ebből származtatja.
5. Forgatókönyv B: Olyan fájl keresése, amely már a felhő tárolóban van
Ha a munkafüzet már az Aspose Cloud Storage-ban van, hagyja ki a letöltést teljesen — a szolgáltatás ott olvassa, ahol van:
# Whole workbook
curl -X PUT "https://api.aspose.cloud/v4.0/cells/Book1.xlsx/search/content" \
-H "Authorization: Bearer $TOKEN" \
--data-urlencode "searchText=Old Vendor Ltd" \
--data-urlencode "ignoringCase=true" \
--data-urlencode "folder=Reports"
# Just one worksheet
curl -X PUT "https://api.aspose.cloud/v4.0/cells/Book1.xlsx/worksheets/Q3%20Forecast/search/content" \
-H "Authorization: Bearer $TOKEN" \
--data-urlencode "searchText=Old Vendor Ltd"
# Just one range of one worksheet
curl -X PUT "https://api.aspose.cloud/v4.0/cells/Book1.xlsx/worksheets/Q3%20Forecast/ranges/A1:F40/search/content" \
-H "Authorization: Bearer $TOKEN" \
--data-urlencode "searchText=Old Vendor Ltd"
// Whole workbook in storage
var response = cellsApi.SearchContentInRemoteSpreadsheet(
new SearchContentInRemoteSpreadsheetRequest(
name: "Book1.xlsx",
searchText: "Old Vendor Ltd",
ignoringCase: true,
folder: "Reports"));
// One worksheet
var sheetHits = cellsApi.SearchContentInRemoteWorksheet(
new SearchContentInRemoteWorksheetRequest(
name: "Book1.xlsx",
sheetname: "Q3 Forecast",
searchText: "Old Vendor Ltd",
folder: "Reports"));
// One range
var rangeHits = cellsApi.SearchContentInRemoteRange(
new SearchContentInRemoteRangeRequest(
name: "Book1.xlsx",
sheetname: "Q3 Forecast",
cellArea: "A1:F40",
searchText: "Old Vendor Ltd",
ignoringCase: true,
folder: "Reports"));
Miért három végpont egy helyett? Mert az útvonal hordozza a hatókört. A teljes munkafüzet végpont egy nevet és egy lekérdezést vesz fel; a munkalap végpont egy munkalap szegmenst; a tartomány végpont egy munkalapot és egy tartomány szegmenst vesz fel. Ez egy tiszta, gyorsítótárazható REST forma — és azt jelenti, hogy a „szűkítsd a keresést” paraméterek (
worksheet,cellArea) csak a helyi fájl végponton léteznek, ami érdemes megjegyezni, amikor egy hívást egyik hatókörből a másikba portálsz.
6. Forgatókönyv C: Szerezze meg az összes szövegelemet egy munkafüzetben
Néha nincs keresőkifejezés — csak a leltárra van szükség. Az all-textitems végpontok minden szövegelemet visszaadják a munkafüzetben, így összehasonlíthat két revíziót, felépíthet egy fordítási szószedetet, vagy betáplálhat egy indexelőt:
# Cloud file — every text item
curl -X PUT "https://api.aspose.cloud/v4.0/cells/Book1.xlsx/search/content/all-textitems" \
-H "Authorization: Bearer $TOKEN" \
--data-urlencode "folder=Reports"
# Local upload — every text item
curl -X PUT "https://api.aspose.cloud/v4.0/cells/search/content/all-textitems" \
-H "Authorization: Bearer $TOKEN" \
-F "file=@Book1.xlsx"
A válasz ugyanaz a SearchResponse boríték, amelyben a Content minden cella karakterlánc, hiperhivatkozás felirat és alakzat szöveg esetén fel van töltve a fájlban. Ez a “grep the whole workbook” primitív.
7. Szcenárió D: Csere — és a két nagyon különböző eredmény
Replace az a hely, ahol az API ketté oszlik, és az osztás szándékos:
| Helyi feltöltés → töltse le a javított fájlt | Felhő fájl → vissza mentve a tárolóba | |
|---|---|---|
| Végpont | PUT /v4.0/cells/replace/content |
PUT /v4.0/cells/{name}/replace/content |
| Visszatér | Egy fájlfolyam (ugyanabban a formátumban, ahogy feltöltötte) | CellsCloudResponse { "Code": 200, "Status": "OK" } |
| Érintett tároló | Nincs | Az eredeti fájl felül van írva |
① Cserélje ki egy helyi munkafüzetben, streamelje vissza az eredményt
curl -X PUT "https://api.aspose.cloud/v4.0/cells/replace/content" \
-H "Authorization: Bearer $TOKEN" \
--data-urlencode "searchText={{COMPANY}}" \
--data-urlencode "replaceText=Northwind Traders" \
-F "file=@template.xlsx" \
-o template-rendered.xlsx
using Aspose.Cells.Cloud.SDK.Request;
var request = new ReplaceSpreadsheetContentRequest(
spreadsheet: "C:/templates/template.xlsx",
searchText: "{{COMPANY}}",
replaceText: "Northwind Traders");
// Option A: get the corrected workbook as a Stream
using Stream corrected = cellsApi.ReplaceSpreadsheetContent(request);
using var outFile = File.Create("C:/templates/template-rendered.xlsx");
corrected.CopyTo(outFile);
// Option B: let the SDK write it for you (.NET overload with an output path)
// cellsApi.ReplaceSpreadsheetContent(request, "C:/templates/template-rendered.xlsx");
Itt is elérhetők két hatókör paraméter — sheetname és cellarea — így egy lapon helyőrzőket renderelhet anélkül, hogy a sablon többi részét módosítaná.
② Cserélés felhői munkafüzetben, helyben mentés
# Whole workbook, saved back to storage
curl -X PUT "https://api.aspose.cloud/v4.0/cells/Book1.xlsx/replace/content" \
-H "Authorization: Bearer $TOKEN" \
--data-urlencode "searchText=Old Vendor Ltd" \
--data-urlencode "replaceText=Northwind Traders" \
--data-urlencode "folder=Reports"
# One worksheet
curl -X PUT "https://api.aspose.cloud/v4.0/cells/Book1.xlsx/worksheets/Q3%20Forecast/replace/content" \
-H "Authorization: Bearer $TOKEN" \
--data-urlencode "searchText=Old Vendor Ltd" \
--data-urlencode "replaceText=Northwind Traders" \
--data-urlencode "folder=Reports"
# One range
curl -X PUT "https://api.aspose.cloud/v4.0/cells/Book1.xlsx/worksheets/Q3%20Forecast/ranges/A1:F40/replace/content" \
-H "Authorization: Bearer $TOKEN" \
--data-urlencode "searchText=Old Vendor Ltd" \
--data-urlencode "replaceText=Northwind Traders" \
--data-urlencode "folder=Reports"
// Whole workbook — result saved back into cloud storage
cellsApi.ReplaceContentInRemoteSpreadsheet(
new ReplaceContentInRemoteSpreadsheetRequest(
name: "Book1.xlsx",
searchText: "Old Vendor Ltd",
replaceText: "Northwind Traders",
folder: "Reports"));
// Range-scoped
cellsApi.ReplaceContentInRemoteRange(
new ReplaceContentInRemoteRangeRequest(
name: "Book1.xlsx",
searchText: "Old Vendor Ltd",
replaceText: "Northwind Traders",
worksheet: "Q3 Forecast",
cellarea: "A1:F40",
folder: "Reports"));
A helyben történő csere a tervezés szerint destruktív. A felhő változatok felülírják a
{name}elemet — nem készül biztonsági másolat. Az audit‑igényes munkafolyamatokhoz tarts egy verziózott másolatot (például először töltsd fel aBook1-2026-09-11.xlsxfájlt, majd cseréld), vagy használd a helyi feltöltés változatát, és tárold magadnak a visszakapott adatfolyamot.
8. E forgatókönyv: Törött linkek megtalálása, mielőtt valaki más megtalálná őket
A hivatkozás-ellenőrzés itt a rejtett funkció — ez egy olyan dolog, amelyet nehéz saját kezűleg megírni, és kínos kihagyni. Az összes négy hatókör elérhető; a helyi fájl változat a leggyorsabb ésszerű ellenőrzés:
# Local workbook, whole file
curl -X PUT "https://api.aspose.cloud/v4.0/cells/search/broken-links" \
-H "Authorization: Bearer $TOKEN" \
-F "file=@Book1.xlsx"
# Cloud workbook, whole file
curl -X PUT "https://api.aspose.cloud/v4.0/cells/Book1.xlsx/search/broken-links" \
-H "Authorization: Bearer $TOKEN" \
--data-urlencode "folder=Reports"
# Cloud workbook, one worksheet
curl -X PUT "https://api.aspose.cloud/v4.0/cells/Book1.xlsx/worksheets/Links/search/broken-links" \
-H "Authorization: Bearer $TOKEN" \
--data-urlencode "folder=Reports"
var broken = cellsApi.SearchSpreadsheetBrokenLinks(
new SearchSpreadsheetBrokenLinksRequest(
spreadsheet: "C:/audit/Book1.xlsx"));
foreach (var link in broken.BrokenLinks)
{
Console.WriteLine($"{link.Worksheet} {link.Position} -> {link.LinkAddress}");
}
Az eredmény egy lista, amelyet közvetlenül felhasználhatsz: minden bejegyzés megnevezi a munkalapot, a pozíciót és a problémás LinkAddress-t.
9. Mi kerül valójában beolvasásra? (az a megvalósítási részletek, amelyek megváltoztatják az elvárásaidat)
Ez a rész választja el a működő integrációt a meglepőtől. A WorkbookExtension.cs olvasásakor egy keresés három különböző elem típust jár be minden munkalapon:
| Element type | Source | What’s matched | Position címke |
|---|---|---|---|
| Cellák szövege | worksheet.Cells |
A cella karakterlánc értéke | Cell:A1 |
| Hiperhivatkozások | worksheet.Hyperlinks |
A link cím és a megjelenített szöveg | Hyperlink:Sheet1!B4 |
| Alakzatok | worksheet.Shapes |
shape.Text — szövegdobozok, felhívások, címkék |
Shape:TextBox 3 |
És itt vannak a viselkedések, amelyeket érdemes tudni előtt, hogy körülötte tervezzen:
Csak a karakterlánc cellákat keresik. A vizsgálat a CellValueType.IsString szűrőn alapul. Az szám, dátum vagy logikai értéket tartalmazó cella kihagyásra kerül — így a 2025 keresés nem egyezik meg egy dátumformátumú cellával, amelynek sorozatszáma véletlenül 2025. Azok a cellák, amelyek képletei szöveggé értékelődnek, egyeznek, mivel értéktípusuk karakterlánc.
Az egyetlen egyezési lehetőség a kis- és nagybetűk érzékenysége. ignoringCase a InvariantCultureIgnoreCase és a InvariantCulture összehasonlítás között vált — semmi más. Nincs egész szó, regex vagy “egész cellaérték egyezés” mód, annak ellenére, hogy a generált API dokumentáció ezt sugallhatja. Ha ezekre a szemantikai elemekre van szükség, húzza le az all-textitems készletet, és szűrje le a saját oldalán.
A Replace egyszerű, kis- és nagybetűkre érzékeny, szó szerinti helyettesítés. A Search ignoringCase jelzője nincs megfelelője a Replace-ben — a replace útvonal egyáltalán nem tartalmaz kis- és nagybetűk figyelmen kívül hagyására szolgáló paramétert. És a két kódelág belsőleg eltér: egy teljes munkalap helyettesítés a motor Worksheet.Replace(...) metódusára delegál, míg egy tartományra korlátozott helyettesítés végigiterálja a tartományt, és minden karakterlánc cellát újraír a cell.StringValue.Replace(...) segítségével. Gyakorlati következmény: a tartományra korlátozott helyettesítés csak a karakterlánc cellákat érinti, és szó szerinti, nem mintára alapuló.
A hiperhivatkozás egyezések a címet jelentik, nem a feliratot. Amikor egy keresés a hiperhivatkozás megjelenítési szövegére illeszkedik, a visszaadott Content továbbra is hyperlink.Address. Ha egy “itt találtam” jelentést jelenítesz meg, akkor a URL-re számíts — a felirat nem kerül visszaadásra.
A hibás hivatkozások ellenőrzése csak a http:// és https:// protokollokat vizsgálja. mailto: hivatkozások, helyi fájl útvonalak és belső #Sheet1!A1 horgonyok teljesen kihagyásra kerülnek — soha nem kerülnek tesztelésre, ezért nem fognak megjelenni az eredményekben. Emellett a alakzatok és a cellákhoz csatolt hiperhivatkozásokat is átvizsgálja, ami pontosan azok a helyek, ahol a halott hivatkozások elrejtőznek. Vedd figyelembe, hogy egy hibás hivatkozás Position a nyers hyperlink.Area-ból épül fel (nem a keresési végpontok által használt barátságosabb Area.ToRangName()-ból), ezért ne feltételezd, hogy a két család azonos módon jeleníti meg a pozíciókat — ha stabil kulcsra van szükséged, dolgozd fel a Worksheet + LinkAddress párost.
“Broken” azt jelenti, hogy “elérhetetlen”, nem “hibás állapotkód”. A ellenőrzés minden hivatkozáshoz egy HTTP HEAD kérést küld, és bármilyen választ — beleértve a 404 vagy 500 — elérhetőnek tekint; csak akkor jelöli a hivatkozást töröttnek, ha a kérés kivételt dob (DNS hiba, elutasított kapcsolat, TLS hiba, időtúllépés). Tehát a kimenetet “azok a hivatkozások, amelyeket nem sikerült elérni” formában kell értelmezni. Ha valójában azt szeretnéd, hogy “azok a hivatkozások, amelyek nem adnak vissza 2xx-et”, akkor magadnak kell újra ellenőrizned a visszakapott LinkAddress értékeket.
cellArea elfogadott, de a broken-link végpontokon nem kerül alkalmazásra. A BrokenLinks implementáció csak munkalap neve alapján szűr; a cell-area argumentum átadásra kerül, de soha nem használják. Gyakorlatban ez azt jelenti, hogy a .../ranges/A1:F40/search/broken-links jelenleg ugyanúgy viselkedik, mint a /worksheet/search/broken-links ugyanazon munkalap esetén — a hivatkozások az egész lapra vonatkozóan ellenőrzésre kerülnek. Állítsd be a jelentéseket ennek megfelelően (vagy szűrd a visszakapott listát pozíció szerint), ahelyett, hogy azt feltételeznéd, a tartomány szűkíti az ellenőrzést.
Ezek közül egyik sem akadály — ők a különbség egy olyan funkció között, amely „works in the demo”, és egy olyan között, amely megbízhatóan viselkedik a termelésben.
10. Hibakezelés és üzemeltetési megjegyzések
A szerződés, amelyet a vezérlő dokumentál
| Állapot | Jelentés | Tipikus ok |
|---|---|---|
| 400 | Hibás kérés | Érvénytelen URL/paraméterek — például hibás cellArea, vagy hiányzó searchText |
| 401 | Jogosulatlan | Az azonosítás sikertelen, vagy nem lettek megadva érvényes hitelesítő adatok |
| 404 | Nem található | A forrásfájl nem érhető el a felhő tárolóban |
| 500 | Szerverhiba | A szolgáltatás hibába ütközött a táblázat adatainak lekérése közben |
Belsőleg minden művelet egy segédprogramba (WorkbookElementOperation, UpdateWorkbookElementOperation, UpdateWorkbookElementOperationAndSave) csomagolja a munkáját, amely elkapja a hibákat, és újra dobja őket CellsApiException‑ként, a művelet nevével előtagként — például SearchContentInRemoteRange Error Message: .... Ez a művelet neve az a karakterlánc, amelyet a naplóiban láthat.
| Művelet neve | Végpontcsoport |
|---|---|
SearchSpreadsheetContent, SearchContentInRemoteSpreadsheet |
Helyi / távoli keresés |
SearchContentInRemoteWorksheet, SearchContentInRemoteRange |
Hatókörrel korlátozott távoli keresés |
ReplaceSpreadsheetContent |
Helyi csere (folyam eredmény) |
ReplaceContentInRemoteSpreadsheet, ReplaceContentInRemoteWorksheet, ReplaceContentInRemoteRange |
Távoli csere (eredmény mentése) |
SearchSpreadsheetBrokenLinks, SearchBrokenLinksInRemoteSpreadsheet, SearchBrokenLinksInRemoteWorksheet, SearchBrokenLinksInRemoteRange |
Link ellenőrzés |
Az SDK-k által biztosított opcionális paraméterek
A dokumentált paramétereken túl a felhő‑tárolási kérésmodellek mindegyike ugyanazt a három opcionális beállítást tartalmazza:
password— egy jelszóval védett munkafüzet megnyitása (a kereséseknek nincs szükségük írási hozzáférésre, így a csak olvasható fájlok is működnek);storageName— egy egyéni/kapcsolt felhő tároló megcélzása az alapértelmezett helyett (Python:storage_name);regoin— a munkafüzet értelmezésekor használt régió/nyelvi beállítás (Python eztregion-nek hívja).
Hitelesítés
Az összes SDK automatikusan hitelesíti magát az OAuth 2.0 client_credentials és egy JWT használatával; ha nyers cURL-t használ, először egyszer hívja meg a /connect/token végpontot (lásd §4, ①).
11. Miért az Aspose.Cells Cloud kereséshez és cseréhez?
- ✅ Nulla helyi függőség — nincs Office/Excel, nincs COM, nincs szkriptelési hoszt. Bármilyen nyelvből, bármilyen platformon (Linux, konténerek, serverless) hívható;
- ✅ Mélyebb, mint a szöveges keresés — a cellák, alakzatok és hiperhivatkozások mind elsőrendű egyezési célpontok, ami pontosan ott van, ahol a valódi táblázatok a tartalmukat tárolják;
- ✅ Hatókörű műveletek — munkafüzet / munkalap / tartomány, így egy lap egy régióját javíthatod anélkül, hogy egy 50 MB-os fájlt újraírnál;
- ✅ Felhő-natív vagy állapot nélküli — a tárolt fájlok soha nem hagyják el a tárolót; a helyi feltöltési műveletek egyáltalán nem hagynak nyomot;
- ✅ Magas pontosságú újraírás — a helyettesítéseket az Aspose.Cells motoron keresztül alkalmazzák és újra sorosítják, így a képletek, stílusok, diagramok és formázás megmaradnak a körutazás során;
- ✅ Egyforma felület az SDK-k között — a cURL, .NET, Python és Java felületek 1:1-esen leképeződnek, így a egy nyelvből másolt minta a többi nyelvben is működik.
Kezdje el most: regisztráljon az Aspose Cloud Dashboard oldalon, hozzon létre egy Application-t, helyezze be a hitelesítő adatait a fenti bármely snippet-be, és irányítsa egy saját munkafüzetére — percek alatt működő tartalom auditot kap.
Hasznosnak találtad? Jelöld csillaggal, könyvjelzőzd vagy oszd meg — és írd meg a megjegyzésekben, hogy mire használod a munkafüzet keresés és csere funkciót.