Hello,
I’m trying to create an excel file with smart makers.
In that excel to display user details and transactions, every user has multiple transactions.
for example
user a
table header
transaction 1
user b
table header
transaction 2
transaction 3
etc.
and currently, the output printing all the information like
user a
user b
table header
transaction 1
transaction 2
transaction 3
how
exmaple.zip (454.3 KB)
@zivdaniel,
Since Smart Markers feature provided by Aspose.Cells has its own rules and formatting, so apparently, your required output might be difficult to be rendered via Smart Markers. Also, by checking your template file, you are mixing everything with markers in your desired way, not knowing about the rules and grammar or style of the smart markers. Anyways, to investigate your task in details, I have logged a ticket with an id “CELLSNET-51428” for your issue. We will check if we could devise some way to do it or you have to do it in manual way (e.g., copying/pasting ranges, inserting cells data accordingly).
Once we have an update on it, we will let you know.
@zivdaniel
It’s better that you have to layout your data by yourself as the layout is too complex.
If you still want to use SmartMarker:
1, Please merge constant “transaction_paid_with_allowance” to json as “data.transaction_paid_with_allowance”
2,Set WorkbookDesigner.LineByLine as false.
@simon.zhao , @Amjad_Sahi
Thanks for your response.
currently, now we checking more templates that we need to create. both have variables (headers) and generic data (content).
all the purpose of purchases Aspose.Cell is to support these complex reports and create them easily and fast.
currently, unless you provide us some workaround (how to loop data or create these reports - less manually as possible. that will be good). we don’t see any benefit for that purchase.
more than that, our POC shows that are basic cases can work with smart makers and this is possible to relay them. so combining multiple smart makers make it impossible? what is the difference?
@simon.zhao - WorkbookDesigner.LineByLine = false is by default, I’ve anyway set that to false. but no difference.
transaction_paid_with_allowance
is translated row. for the test, I’ve deleted it anyway. there is no change.
@zivdaniel,
Please note, Smart Matkers is an extra and unique feature that Asopse.Cells provides for the users. Please keep in mind there is no such feature available in MS Excel. Smart markers can work on simple level, it may not work with custom oriented complex reports.
Anyways we will look into it further and get back to you soon.
@zivdaniel
Please check the attached codes and template fileDesktop.zip (302.5 KB)
1,If LineByLine is False, the template file must contain a range which is named as “_CellsSmartMarkers”, then we can know how many rows should be processed as a table.
2,The default value of WorkbookDesigner.LineByLine is true, there is an issue of API Reference. We will update it soon.
@Amjad_Sahi, @simon.zhao. thank you for your response.
@simon.zhao,
- there is any chance to check how we can add the headers also to that suggested solution?
- I also managed to generate some reports (still not working as we expected), with the
skip
and noAdd
options. but I check that with your solution and seems like we’re not able to run the line by line =false
and that options together
- We also tried to change the data structure (list with only 1 level of data) and working with
group: normal
and it work some way with the skip
but not 100% , when I tried to add that changes to your solution, the Aspose didn’t render the email, name and id
at all (empty cells)
- in your solution I’ve seen there is a usage of
book1.ods
as HTML string (code commented). maybe that is some lead we can check? even work with that as a “template component” (?) and then inject that to the workbook.
Any thought will be helpful
thanks
@zivdaniel,
We will evaluate and get back to you soon with more details.
1 Like
@zivdaniel
Please share a sample project with your input and excepted files, we will check it soon.
Hi @simon.zhao,
I’ve managed to find a workaround for how to insert headers.
We have added complexity to our data model so the smart marker will stay with only one datasource
[{
email : "email@test.com",
headers:[{ email_header: "User Email" }],
transaction:[{orderId:"123"},{orderId:"124"}]
}]
so when we added the headers list, with only one object - we manage to set the “data” key for the source as one. and he will render the header only in one row.
now I’m working on some variable that won’t be rendered after the table is ready (some disclaimer row that needs to be translated also) so I’m thinking maybe I can place the row in the beginning and after the processing is completed - I will cut the row and paste it in the end or the report.
@zivdaniel
Please take your time to evaluate your workaround. If have any questions, please let us know.