---
id: object/codeunit/1481
type: object
title: Codeunit 1481 "Edit in Excel"
summary: Codeunit 1481 "Edit in Excel" in System Application (System.Integration.Excel). 6 public procedures, 3 events. Present since at least BC23, still in BC30, changed in BC26, BC29.
tier: official
language: en
tags:
  - codeunit
  - system application
versions:
  introduced: null
  last_changed: "29"
  deprecated: null
review:
  state: derived
  by: null
  at: null
  flags: []
generated:
  at: "2026-10-11T00:31:51.816Z"
  pipeline: 0.2.0
  prompts: {}
  input_hash: b900c3e63e5daf9d6e088e7c87caf5c95fd6980a207f97f67075fb5de6559e00
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/System%20Application/App/Edit%20in%20Excel/src/EditInExcel.Codeunit.al
    title: src/System Application/App/Edit in Excel/src/EditInExcel.Codeunit.al (releases/29.x)
    date: null
    commit: ea08af5ef2d6a9b5c5af4a029288abbe2c883220
    t: null
    quote: null
links:
  learn: []
  objects: []
  features: []
  topics: []
  localizations: []
  videos: []
  posts: []
  guidelines: []
  changes:
    - change/bcapps/8051
object_type: codeunit
object_id: 1481
name: Edit in Excel
namespace: System.Integration.Excel
app: System Application
extends: null
first_version: "23"
last_version: "30"
present_in:
  - "23"
  - "24"
  - "25"
  - "26"
  - "27"
  - "28"
  - "29"
  - "30"
changed_in:
  - "26"
  - "29"
source_major: "29"
obsolete: null
countries: []
ms_search_form_ids: []
counts:
  fields: 0
  procedures: 9
  events: 3
  subscribers: 0
relations:
  out: 0
  referenced_by: 0
  pages: 0
  extended_by: 0
  event_subscribers: 0
  calls: 1
  called_by: 3
  implements: 0
---

# Codeunit 1481 "Edit in Excel"

> Codeunit 1481 "Edit in Excel" in System Application (System.Integration.Excel). 6 public procedures, 3 events. Present since at least BC23, still in BC30, changed in BC26, BC29.

System Application · System.Integration.Excel · BC23-30 · [source at ea08af5e](https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/System%20Application/App/Edit%20in%20Excel/src/EditInExcel.Codeunit.al) · facts from BC29

## Properties

| Property | Value |
|---|---|
| Access | Public |

## Events published

- `OnEditInExcelWithStructuredFilter(ServiceName: Text[240]; Filter: JsonObject; Payload: JsonObject; SearchFilter: Text; var Handled: Boolean)` (integration): This event is called when Edit in Excel is invoked, handling JSON structured filters. It also allows overriding the Edit in Excel functionality. It is however recommended to use OnEditInExcelWithFilters below if possible to avoid taking dependency on a given structure.
- `OnEditInExcelWithFilters(ServiceName: Text[240]; var EditinExcelFilters: Codeunit "Edit in Excel Filters"; SearchFilter: Text; var Handled: Boolean)` (integration): This event is called when the Edit in Excel system action is invoked or EditInExcel is called in this codeunit. It allows modifying filters or overriding the Edit in Excel functionality completely.
- `OnBeforePageControlFieldFindSet(var PageControlField: Record "Page Control Field"; PageId: Integer)` (integration): This event is raised before iterating the Page Control Field record set used to build the Edit in Excel workbook column bindings. Subscribers can add further filters or change the sort order to control which page fields are exported to Excel (for example, to honor user personalization).

## Procedures

- `EditPageInExcel(PageCaption: Text[240]; PageId: Integer)`: Creates web service for the specified page, and uses the web service to prepare and download an Excel file for the Edit in Excel functionality.
- `EditPageInExcel(PageCaption: Text[240]; PageId: Integer; EditinExcelFilters: Codeunit "Edit in Excel Filters")`: Creates web service for the specified page, and uses the web service to prepare and download an Excel file for the Edit in Excel functionality.
- `EditPageInExcel(PageCaption: Text[240]; PageId: Integer; EditinExcelFilters: Codeunit "Edit in Excel Filters"; FileName: Text)`: Creates web service for the specified page, and uses the web service to prepare and download an Excel file for the Edit in Excel functionality.
- `GenerateExcelWorkBook(TenantWebService: Record "Tenant Web Service"; SearchFilter: Text)`: Prepares an Excel file for the Edit in Excel functionality by using the specified web service, and downloads the file.
- `GenerateExcelWorkBook(TenantWebService: Record "Tenant Web Service"; EditinExcelFilters: Codeunit "Edit in Excel Filters")`: Prepares an Excel file for the Edit in Excel functionality by using the specified web service, and downloads the file.
- `ExternalizeODataObjectName(Name: Text): Text`: Converts a name (e.g. a field name or service name) to its OData externalized form. Mimics the conversion the Edit in Excel runtime applies to field and service names when generating the workbook payload, so that other apps can derive the same external names without duplicating the conversion logic.

## Calls

From the extracted call graph of BC29 (graphify-al on the snapshot checkout): calls whose target is known from a declared type or an `Object::"Name"` argument. Interface dispatch and calls through events are not counted, so the list is not complete.

- [Codeunit 1482 "Edit in Excel Impl."](../codeunit/1482.md) (3 calls: `EditPageInExcel → EditPageInExcel`, `ExternalizeODataObjectName → ExternalizeODataObjectName`, `GenerateExcelWorkBook → GetEndPointAndCreateWorkbookWStructuredFilter`)

## Called by

- [Codeunit 1482 "Edit in Excel Impl."](../codeunit/1482.md) (4 calls: `EditPageInExcel → OnEditInExcelWithFilters`, `OnEditInExcelWithStructuredFilterEvent → OnEditInExcelWithFilters`, `OnEditInExcelWithStructuredFilterEvent → OnEditInExcelWithStructuredFilter`, …)
- [Codeunit 6710 "ODataUtility"](../codeunit/6710.md) (1 call: `EditJournalWorksheetInExcel → EditPageInExcel`)
- [Page 6713 "OData Fields Export"](../page/6713.md) (1 call: `OnQueryClosePage → GenerateExcelWorkBook`)

## Recent changes

- 2026-07-09 [#8051 [Edit in Excel] Expose ExternalizeODataObjectName and add Page Control Field publisher](../../changes/bcapps/8051.md) (main, BC30, feature)

## Across versions

- Present in: BC23-30
- Changed (declaration) in: BC26, BC29

Source: AL metadata extracted from the code (names, ids, signatures, properties); no code bodies (D10).

## Ask your agent

Procedure bodies are not stored here (D10). The call sections above are our own, per object, from the BC29 call graph. For a procedure body or the calls of one procedure, ask bc-code-atlas (external, by Stefan Maron, MIT; default corpus w1-28), which the bc-observatory plugin connects: `bcatlas_resolve_node(object_type: "codeunit", object_name: "Edit in Excel")`, then `bcatlas_get_procedure_body` or `bcatlas_get_neighbors` on the returned id.
