diff --git a/assets/js/src/core/modules/element/export-api-slice.gen.ts b/assets/js/src/core/modules/element/export-api-slice.gen.ts
index fad517084d..658133abcc 100644
--- a/assets/js/src/core/modules/element/export-api-slice.gen.ts
+++ b/assets/js/src/core/modules/element/export-api-slice.gen.ts
@@ -192,6 +192,7 @@ export type ExportXlsxApiArg = {
| "string"
| "bool"
| "items_to_restore";
+ sheetName?: string;
};
elementType?: "data-object" | "object" | "asset" | "document";
classId?: string | null;
@@ -234,6 +235,7 @@ export type ExportXlsxFolderApiArg = {
| "string"
| "bool"
| "items_to_restore";
+ sheetName?: string;
};
elementType?: "data-object" | "object" | "asset" | "document";
classId?: string | null;
diff --git a/assets/js/src/core/modules/element/listing/batch-actions/xlsx-modal/create-xlsx-form/create-xlsx-form.tsx b/assets/js/src/core/modules/element/listing/batch-actions/xlsx-modal/create-xlsx-form/create-xlsx-form.tsx
index 7d1b888188..a701cbecd2 100644
--- a/assets/js/src/core/modules/element/listing/batch-actions/xlsx-modal/create-xlsx-form/create-xlsx-form.tsx
+++ b/assets/js/src/core/modules/element/listing/batch-actions/xlsx-modal/create-xlsx-form/create-xlsx-form.tsx
@@ -12,9 +12,11 @@ import React from 'react'
import { useTranslation } from 'react-i18next'
import { Form, type FormProps } from '@Pimcore/components/form/form'
import { Select } from '@Pimcore/components/select/select'
+import { Input } from '@Pimcore/components/input/input'
export interface XLSXFormValues {
header: 'name' | 'title' | 'no_header'
+ sheetName: string
}
export interface CreateXLSXFormProps extends FormProps {}
@@ -42,6 +44,14 @@ export const CreateXLSXForm = ({ ...props }: CreateXLSXFormProps): React.JSX.Ele
}
/>
+
+
+
+
)
}
diff --git a/assets/js/src/core/modules/element/listing/batch-actions/xlsx-modal/xlsx-modal.tsx b/assets/js/src/core/modules/element/listing/batch-actions/xlsx-modal/xlsx-modal.tsx
index a81034dbb9..d0ce5902da 100644
--- a/assets/js/src/core/modules/element/listing/batch-actions/xlsx-modal/xlsx-modal.tsx
+++ b/assets/js/src/core/modules/element/listing/batch-actions/xlsx-modal/xlsx-modal.tsx
@@ -49,7 +49,8 @@ export const XlsxModal = (props: XlsxModalProps): React.JSX.Element => {
const classDefinitionSelection = useClassDefinitionSelection(true)
const selectedClassDefinition = classDefinitionSelection?.selectedClassDefinition
const initialFormValues: XLSXFormValues = {
- header: 'name'
+ header: 'name',
+ sheetName: 'Sheet1'
}
const { t } = useTranslation()
@@ -110,13 +111,13 @@ export const XlsxModal = (props: XlsxModalProps): React.JSX.Element => {
function onFinish (values: XLSXFormValues): void {
const isFolderExport = numberedSelectedRows.length === 0
- const job = new XlsxDownloadJob({ action: async () => await getDownloadAction(values.header), isFolderExport })
+ const job = new XlsxDownloadJob({ action: async () => await getDownloadAction(values.header, values.sheetName), isFolderExport })
void executionEngine.runJob(job)
props.setOpen(false)
}
- async function getDownloadAction (header: XLSXFormValues['header']): Promise {
+ async function getDownloadAction (header: XLSXFormValues['header'], sheetName: XLSXFormValues['sheetName']): Promise {
const extractedColumnsFromColumnArg: GridColumnRequest[] = []
const columns = getArgs()?.body?.columns ?? []
@@ -148,7 +149,8 @@ export const XlsxModal = (props: XlsxModalProps): React.JSX.Element => {
elementType,
columns: extractedColumnsFromColumnArg,
config: {
- header
+ header,
+ sheetName
},
filters: {
...filters
@@ -167,7 +169,8 @@ export const XlsxModal = (props: XlsxModalProps): React.JSX.Element => {
elementType,
columns: extractedColumnsFromColumnArg,
config: {
- header
+ header,
+ sheetName
},
...(!isNil(selectedClassDefinition?.id) && { classId: selectedClassDefinition.id })
}
diff --git a/translations/studio.en.yaml b/translations/studio.en.yaml
index 0de336f8d2..7946e9ef47 100644
--- a/translations/studio.en.yaml
+++ b/translations/studio.en.yaml
@@ -991,7 +991,7 @@ lazy-loading: Lazy Loading
disallow-add-remove: Disallow Add / Remove
disallow-reorder: Disallow Reorder
css-style: CSS Style
-css-style-tooltip: "Inline CSS applied to the body, e.g. \"float: left; margin: 10px;\". Invalid declarations are ignored."
+css-style-tooltip: 'Inline CSS applied to the body, e.g. "float: left; margin: 10px;". Invalid declarations are ignored.'
collapsible: Collapsible
collapsed: Initially Collapsed
border: Border
@@ -1099,6 +1099,7 @@ export-xlsx-form.form-field.header: Header
export-xlsx-form.form-field.header.option.name: System key
export-xlsx-form.form-field.header.option.title: Label
export-xlsx-form.form-field.header.option.no-header: No header
+export-xlsx-form.form-field.sheet-name: Sheet name
form.validation.required: This field is required
form.validation.max-length: The maximum length for this field is {{max}} characters
form.validation.min: The minimum value is {{min}}
@@ -1908,18 +1909,18 @@ classification-store.tabs.groups: Groups
classification-store.tabs.keys: Keys
classification-store.add-store: Add store
classification-store.rename-store: Rename store
-classification-store.delete-store: "Delete store \"{{storeName}}\"?"
+classification-store.delete-store: 'Delete store "{{storeName}}"?'
classification-store.add-group: Add group
classification-store.rename-group: Rename group
-classification-store.delete-group: "Delete group \"{{groupName}}\"?"
+classification-store.delete-group: 'Delete group "{{groupName}}"?'
classification-store.add-collection: Add collection
classification-store.rename-collection: Rename collection
-classification-store.delete-collection: "Delete collection \"{{collectionName}}\"?"
+classification-store.delete-collection: 'Delete collection "{{collectionName}}"?'
classification-store.add-key: Add key
classification-store.rename-key: Rename key
-classification-store.delete-key: "Delete key \"{{keyName}}\"?"
-classification-store.delete-key-relation: "Remove key \"{{keyName}}\" from this group?"
-classification-store.delete-group-relation: "Remove group \"{{groupName}}\" from this collection?"
+classification-store.delete-key: 'Delete key "{{keyName}}"?'
+classification-store.delete-key-relation: 'Remove key "{{keyName}}" from this group?'
+classification-store.delete-group-relation: 'Remove group "{{groupName}}" from this collection?'
classification-store.edit-definition: Edit definition
classification-store.edit-key-definition: "Edit key definition: {{keyName}}"
classification-store.columns.id: ID