We're sorry Aspose doesn't work properply without JavaScript enabled.

Free Support Forum - aspose.com

Track changes feature in excel

Hi,
we would like to get the list of changes from a file with “track changes” on.

I want to know track changes feature is available in aspose or not,
there is a ticket CELLSJAVA-42557 which was raised, can you please revert us with the status of that ticket?
Do reply as soon as possible.

Thanks,
supriya

@ksupriya,

Thanks for your query.

Yes, we logged a ticket (“CELLSJAVA-42557”) for it into our database to investigate and support it. Since the feature is complex so it may not be supported in short time. I am afraid, there is no ETA on it yet either.

Once we have any news on it, we will let you know.

Ok, Thanks for the quick response.

@ksupriya,

We have a good news for you. We have analyzed the feature already. We plan to publish more APIs about Revision collections (e.g Revisions.RevisionLogCollection). We will try to complete the feature before the end of April, 2020.

@ksupriya,

Please try our latest version/fix: Aspose.Cells for Java v20.3.3 (attached)
aspose-cells-20.3.3-java.zip (7.0 MB)

Your issue should be fixed in it. See the following sample code for reference.
e.g
Sample code:

Workbook workbook = new Workbook(file);
                foreach(RevisionLog log in workbook.Worksheets.RevisionLogs)
                {
                    RevisionCollection rvs = log.Revisions;
                    foreach (Revision rv in rvs)
                    {
                        switch (rv.Type)
                        {

                            case RevisionType.InsertDelete:
                                RevisionInsertDelete rrc = (RevisionInsertDelete)rv;
                                Console.WriteLine(string.Format("ActionType :{0}; newArea : {1}.", rrc.ActionType, rrc.CellArea));
                                Console.WriteLine(rrc.CellArea);
                                break;
                            case RevisionType.ChangeCells:
                                RevisionCellChange rcc = (RevisionCellChange)rv;
                                string str = string.Format("CellName :{0}; OldValue : {1} ;NewOld : {2}.", rcc.CellName, rcc.OldValue, rcc.NewValue);
                                Console.WriteLine(str);
                                break;
                            case RevisionType.MoveCells:
                                RevisionCellMove rm = (RevisionCellMove)rv;
                                Console.WriteLine(string.Format("SourceArea :{0}; newArea : {1}.", rm.SourceArea, rm.DestinationArea));
                                break;
                            case RevisionType.CustomView:
                                RevisionCustomView rcv = (RevisionCustomView)rv;
                                Console.WriteLine(string.Format("ActionType :{0}; guid : {1}.", rcv.ActionType, rcv.Guid));
                                break;
                            case RevisionType.Format:
                                RevisionFormat rfmt = (RevisionFormat)rv;
                                Console.WriteLine(string.Format("worksheet :{0}; area : {1}.", rfmt.Worksheet.Name, rfmt.Areas[0]));
                                break;
                            case RevisionType.InsertSheet:
                                RevisionInsertSheet ris = (RevisionInsertSheet)rv;
                                Console.WriteLine(string.Format("newsheet :{0}; sheetPosition : {1}.", ris.Name, ris.SheetPosition));
                                break;
                            case RevisionType.DefinedName:
                                RevisionDefinedName rdn = (RevisionDefinedName)rv;
                                Console.WriteLine(string.Format("Test :{0}; oldFormula :{1};  newformula : {2}.", rdn.Text, rdn.OldFormula, rdn.NewFormula));

                                break;
                            case RevisionType.RenameSheet:
                                RevisionRenameSheet rsnm = (RevisionRenameSheet)rv;
                                Console.WriteLine(string.Format("OldName :{0}; newName :{1}.", rsnm.OldName, rsnm.NewName));
                                break;
                            default:
                                Console.WriteLine(rv.Type);
                                break;
                        }
                    }
                }

Hi @Amjad_Sahi,

We would be interested in trying out this feature as well.

Kind regards,
Taras

@TarasTielkes,

Sure, please take your time to evaluate the feature and in case you find any issue, let us know with details, sample file and sample code, we will check it soon.

Hi @Amjad_Sahi,

Could you make the v20.3.3 library accessible to me as well, in order to try the feature?
At the moment I can not download the version that is attached to your post above.

Kind regards,
Taras

@TarasTielkes,

Since you are not the owner of the thread, so you might not access or download the attachments. Please create a new thread and ask for the latest fix, we will share it in your thread soon.