In alcuni casi, potrebbe essere necessario modificare i documenti di Word a livello di codice. Possiamo facilmente aggiungere, modificare o eliminare il contenuto di file DOC o DOCX o applicare la formattazione del testo utilizzando Python. In questo articolo impareremo come modificare i documenti di Word utilizzando un’API REST in Python.
In questo articolo saranno trattati i seguenti argomenti:
- API REST dell’editor di documenti di Word e SDK Python
- Modifica il documento di Word utilizzando l’API REST in Python
- Aggiungi tabella nei documenti di Word usando Python
- Inserisci l’immagine nei documenti di Word usando Python
API REST dell’editor di documenti di Word e SDK Python
Per modificare i file DOCX, utilizzeremo l’API Python SDK of GroupDocs.Editor Cloud. Si prega di installarlo utilizzando il seguente comando nella console:
pip install groupdocs_editor_cloud
Si prega di ottenere l’ID cliente e il segreto dalla dashboard prima di seguire i passaggi menzionati. Una volta che hai il tuo ID e segreto, aggiungi il codice come mostrato di seguito:
client_id = "659fe7da-715b-4744-a0f7-cf469a392b73"
client_secret = "b377c36cfa28fa69960ebac6b6e36421"
configuration = groupdocs_editor_cloud.Configuration(client_id, client_secret)
configuration.api_base_url = "https://api.groupdocs.cloud"
my_storage = ""
Modifica i documenti di Word utilizzando l’API REST in Python
Possiamo modificare i documenti di Word seguendo i semplici passaggi indicati di seguito:
Carica il documento
Innanzitutto, caricheremo il file DOCX nel Cloud utilizzando l’esempio di codice riportato di seguito:
# Crea un'istanza dell'API
file_api = groupdocs_editor_cloud.FileApi.from_config(configuration)
# Carica file di esempio
request = groupdocs_editor_cloud.UploadFileRequest("sample.docx", "C:\\Files\\Editor\\sample.docx", my_storage)
response = file_api.upload_file(request)
Di conseguenza, il file DOCX caricato sarà disponibile nella sezione file della dashboard sul cloud.
Modifica documento Word usando Python
Possiamo modificare il documento di Word a livello di codice seguendo i passaggi indicati di seguito:
- Innanzitutto, crea istanze di FileApi e EditApi.
- Successivamente, crea un’istanza di FileInfo e fornisci il percorso del file DOCX di input.
- Quindi, inizializza un’istanza di WordProcessingLoadOptions e assegna FileInfo.
- Successivamente, crea l’oggetto LoadRequest con WordProcessingLoadOptions come argomento.
- Quindi, chiama il metodo EditApi.load() con l’oggetto LoadRequest per caricare il file DOCX di input.
- Successivamente, crea DownloadFileRequest con il file caricato.
- Quindi, chiama il metodo FileApi.download\file() per scaricare il file come documento HTML.
- Successivamente, leggi il file HTML scaricato come una stringa.
- Quindi, modifica l’HTML e salva il documento HTML aggiornato.
- Successivamente, crea UploadFileRequest e passa il percorso e il file HTML come parametri.
- Quindi, chiama il metodo FileApi.upload\file() con UploadFileRequest per caricare il file HTML aggiornato.
- Successivamente, crea un’istanza di WordProcessingSaveOptions da salvare nel DOCX.
- Successivamente, crea SaveRequest con l’oggetto WordProcessingSaveOptions.
- Infine, salva l’HTML in DOCX utilizzando il metodo EditApi.save() con l’oggetto SaveRequest.
L’esempio di codice seguente mostra come modificare un documento di Word usando un’API REST in Python.
# Inizializza le istanze delle API
editApi = groupdocs_editor_cloud.EditApi.from_keys(client_id, client_secret)
fileApi = groupdocs_editor_cloud.FileApi.from_keys(client_id, client_secret)
# Fornire il percorso del file di input
fileInfo = groupdocs_editor_cloud.FileInfo("sample.docx")
# Definisci CaricoOptions per caricarlo in uno stato modificabile
loadOptions = groupdocs_editor_cloud.WordProcessingCaricoOptions()
loadOptions.file_info = fileInfo
loadOptions.output_path = "output"
# Crea richiesta di carico
loadRequest = groupdocs_editor_cloud.CaricoRequest(loadOptions)
# Carico
loadResult = editApi.load(loadRequest)
# Crea richiesta di download
downloadRequest = groupdocs_editor_cloud.DownloadFileRequest(loadResult.html_path)
# Scarica documento html
htmlFile = fileApi.download_file(downloadRequest)
# Leggi il documento html
html = ""
with open(htmlFile, 'r') as file:
html = file.read()
# Modifica qualcosa...
html = html.replace("Title of the document", "Hello world")
html = html.replace("Subtitle #1", "Welcome")
# Riscrivi html nel file
with open(htmlFile, 'w') as file:
file.write(html)
# Crea richiesta di caricamento
uploadRequest = groupdocs_editor_cloud.UploadFileRequest(loadResult.html_path, htmlFile)
# Caricare un file
fileApi.upload_file(uploadRequest)
# Salva html in docx
saveOptions = groupdocs_editor_cloud.WordProcessingSalvaOptions()
saveOptions.file_info = fileInfo
saveOptions.output_path = "output/edited.docx"
saveOptions.html_path = loadResult.html_path
saveOptions.resources_path = loadResult.resources_path
# Crea richiesta di salvataggio
saveRequest = groupdocs_editor_cloud.SalvaRequest(saveOptions)
# Salva
saveResult = editApi.save(saveRequest)
# Fatto
print("Document edited: " + saveResult.path)
Scarica il file aggiornato
L’esempio di codice precedente salverà il documento Word modificato (DOCX) nel cloud. Può essere scaricato utilizzando il seguente esempio di codice:
# Inizializzazione dell'API
file_api = groupdocs_editor_cloud.FileApi.from_config(configuration)
# Crea richiesta di download del file
request = groupdocs_editor_cloud.DownloadFileRequest("output/edited.docx", my_storage)
# Download file
response = file_api.download_file(request)
# Sposta il file scaricato nella tua directory di lavoro
shutil.move(response, "C:\\Files\\Editor\\")
Aggiungi tabella nei documenti di Word usando Python
Possiamo aggiungere una tabella nei documenti di Word a livello di codice seguendo i passaggi menzionati in precedenza. Tuttavia, dobbiamo aggiornare l’HTML per aggiungere una tabella nel documento come mostrato di seguito:
html = html.replace("left-aligned.", """left-aligned. <br/><table style="width: 100%;background-color: #dddddd;">
<caption style=\"font-weight:bold;\"> Persons List</caption>
<tr><th>First Name</th><th>Last Name</th><th>Age</th></tr>
<tr><td>Jill</td><td>Smith</td><td>50</td></tr>
<tr><td>Eve</td><td>Jackson</td><td>94</td></tr>
</table>""")
L’esempio di codice seguente mostra come aggiungere una tabella in un documento di Word usando un’API REST in Python. Si prega di seguire i passaggi menzionati in precedenza per caricare e scaricare un file.
# Inizializza le istanze delle API
editApi = groupdocs_editor_cloud.EditApi.from_keys(client_id, client_secret)
fileApi = groupdocs_editor_cloud.FileApi.from_keys(client_id, client_secret)
# Fornire il percorso del file di input
fileInfo = groupdocs_editor_cloud.FileInfo("sample.docx")
# Definisci CaricoOptions per caricarlo in uno stato modificabile
loadOptions = groupdocs_editor_cloud.WordProcessingCaricoOptions()
loadOptions.file_info = fileInfo
loadOptions.output_path = "output"
# Crea richiesta di carico
loadRequest = groupdocs_editor_cloud.CaricoRequest(loadOptions)
# Carico
loadResult = editApi.load(loadRequest)
# Crea richiesta di download
downloadRequest = groupdocs_editor_cloud.DownloadFileRequest(loadResult.html_path)
# Scarica documento html
htmlFile = fileApi.download_file(downloadRequest)
# Leggi il documento html
html = ""
with open(htmlFile, 'r') as file:
html = file.read()
# Inserisci tabella
html = html.replace("left-aligned.", """left-aligned. <br/><table style="width: 100%;background-color: #dddddd;">
<caption style=\"font-weight:bold;\"> Persons List</caption>
<tr><th>First Name</th><th>Last Name</th><th>Age</th></tr>
<tr><td>Jill</td><td>Smith</td><td>50</td></tr>
<tr><td>Eve</td><td>Jackson</td><td>94</td></tr>
</table>""")
# Riscrivi html nel file
with open(htmlFile, 'w') as file:
file.write(html)
# Crea richiesta di caricamento
uploadRequest = groupdocs_editor_cloud.UploadFileRequest(loadResult.html_path, htmlFile)
# Caricare un file
fileApi.upload_file(uploadRequest)
# Salva html in docx
saveOptions = groupdocs_editor_cloud.WordProcessingSalvaOptions()
saveOptions.file_info = fileInfo
saveOptions.output_path = "output/add_table.docx"
saveOptions.html_path = loadResult.html_path
saveOptions.resources_path = loadResult.resources_path
# Crea richiesta di salvataggio
saveRequest = groupdocs_editor_cloud.SalvaRequest(saveOptions)
# Salva
saveResult = editApi.save(saveRequest)
# Fatto
print("Document edited: " + saveResult.path)
Inserisci l’immagine nei documenti di Word usando Python
Possiamo inserire un’immagine nei documenti di Word a livello di codice seguendo i passaggi menzionati in precedenza. Tuttavia, dobbiamo aggiornare l’HTML per inserire un’immagine nel documento come mostrato di seguito:
html = html.replace("left-aligned.", """left-aligned. <br/> <img src=\"groupdocs.png\" alt=\"signatures\" style=\"width: 128px; height: 128px;\">""");
L’esempio di codice seguente mostra come inserire un’immagine in un documento di Word usando un’API REST in Python. Si prega di seguire i passaggi menzionati in precedenza per caricare e scaricare un file.
# Inizializza le istanze delle API
editApi = groupdocs_editor_cloud.EditApi.from_keys(client_id, client_secret)
fileApi = groupdocs_editor_cloud.FileApi.from_keys(client_id, client_secret)
# Fornire il percorso del file di input
fileInfo = groupdocs_editor_cloud.FileInfo("sample.docx")
# Definisci CaricoOptions per caricarlo in uno stato modificabile
loadOptions = groupdocs_editor_cloud.WordProcessingCaricoOptions()
loadOptions.file_info = fileInfo
loadOptions.output_path = "output"
# Crea richiesta di carico
loadRequest = groupdocs_editor_cloud.CaricoRequest(loadOptions)
# Carico
loadResult = editApi.load(loadRequest)
# Crea richiesta di download
downloadRequest = groupdocs_editor_cloud.DownloadFileRequest(loadResult.html_path)
# Scarica documento html
htmlFile = fileApi.download_file(downloadRequest)
# Leggi il documento html
html = ""
with open(htmlFile, 'r') as file:
html = file.read()
# Inserisci un'immagine
html = html.replace("left-aligned.", """left-aligned. <br/> <img src=\"groupdocs.png\" alt=\"signatures\" style=\"width: 128px; height: 128px;\">""");
# Riscrivi html nel file
with open(htmlFile, 'w') as file:
file.write(html)
# Crea richiesta di caricamento
uploadRequest = groupdocs_editor_cloud.UploadFileRequest(loadResult.html_path, htmlFile)
# Caricare un file
fileApi.upload_file(uploadRequest)
# Salva html in docx
saveOptions = groupdocs_editor_cloud.WordProcessingSalvaOptions()
saveOptions.file_info = fileInfo
saveOptions.output_path = "output/add_image.docx"
saveOptions.html_path = loadResult.html_path
saveOptions.resources_path = loadResult.resources_path
# Crea richiesta di salvataggio
saveRequest = groupdocs_editor_cloud.SalvaRequest(saveOptions)
# Salva
saveResult = editApi.save(saveRequest)
# Fatto
print("Document edited: " + saveResult.path)
Prova in linea
Prova il seguente strumento di modifica DOCX online gratuito, sviluppato utilizzando l’API di cui sopra. https://products.groupdocs.app/editor/docx
Conclusione
In questo articolo, abbiamo imparato come modificare i documenti di Word sul cloud. Abbiamo anche visto come aggiungere una tabella o inserire un’immagine nel file DOCX utilizzando una REST API in Python. Questo articolo spiega anche come caricare a livello di codice un file DOCX nel cloud e quindi scaricare il file modificato dal cloud. Inoltre, puoi saperne di più su GroupDocs.Editor Cloud API utilizzando la documentazione. Forniamo anche una sezione Riferimento API che ti consente di visualizzare e interagire con le nostre API direttamente attraverso il browser. In caso di ambiguità, non esitate a contattarci sul forum.