Open-XML-SDK icon indicating copy to clipboard operation
Open-XML-SDK copied to clipboard

'OpenXmlElementList' does not contain a definition for 'GetItem'

Open Aurimelis opened this issue 1 year ago • 7 comments

Missing method for getting item from OpenXmlElementList class.

Starting from version: 3.0.0

Working version: 2.20.0

Error CS1061 'OpenXmlElementList' does not contain a definition for 'GetItem' and no accessible extension method 'GetItem' accepting a first argument of type 'OpenXmlElementList' could be found (are you missing a using directive or an assembly reference?)

Aurimelis avatar Jan 19 '24 15:01 Aurimelis

Can you share your code sample?

Did you try:

OpenXmlElementList list = ....;
var item = list[index];

There were a number of breaking changes from v2.x - not sure if this one got documented, but let me know if it works and I'll make sure the docs are updated.

twsouthwick avatar Jan 22 '24 19:01 twsouthwick

Tried, seems to work. I was just not finding any breaking change in the docs regarding that method.

Aurimelis avatar Jan 23 '24 07:01 Aurimelis

@twsouthwick what exactly is needed here? Code change or documentation?

AlfredHellstern avatar Feb 13 '24 19:02 AlfredHellstern

Docs update

twsouthwick avatar Feb 13 '24 20:02 twsouthwick

Docs update

How to do that??

Babufrik123 avatar Feb 29 '24 07:02 Babufrik123

Can you share your code sample?

Did you try:

OpenXmlElementList list = ....;
var item = list[index];

There were a number of breaking changes from v2.x - not sure if this one got documented, but let me know if it works and I'll make sure the docs are updated.

Where to write this??

Babufrik123 avatar Feb 29 '24 07:02 Babufrik123

@Babufrik123

https://github.com/OfficeDev/open-xml-docs/blob/main/docs/migration/migrate-v2-to-v3.md

Happy to take a PR to update that or any other doc changes :)

twsouthwick avatar Feb 29 '24 16:02 twsouthwick

@Babufrik123

https://github.com/OfficeDev/open-xml-docs/blob/main/docs/migration/migrate-v2-to-v3.md

Happy to take a PR to update that or any other doc changes :)

Can u please explain in detail what exactly nedds to be done to use getitem().

Babufrik123 avatar Mar 05 '24 13:03 Babufrik123

OpenXmlElementList list = ....;
var item = list.GetItem(index);

to

OpenXmlElementList list = ....;
var item = list[index];

twsouthwick avatar Mar 05 '24 21:03 twsouthwick

OpenXmlElementList list = ....;
var item = list.GetItem(index);

to

OpenXmlElementList list = ....;
var item = list[index];

OpenXmlElementList list = ....;
var item = list.GetItem(index);

to

OpenXmlElementList list = ....;
var item = list[index];

Hi twsouthwick, I still didnt unterstand, can u please give a step by step guide. Actually I m reading data from excel to data table using document open xml and there that getitem() is required.But due to latest version I m not able to use that.I m attaching the link of my code please refer that and share what to do.

https://www.aspsnippets.com/Articles/1463/Read-and-Import-Excel-data-to-DataTable-using-OpenXml-in-ASPNet-with-C-and-VBNet/

Babufrik123 avatar Mar 06 '24 05:03 Babufrik123

What I supplied is the only step needed. The call to GetItem needs to be changed to an indexer.

twsouthwick avatar Mar 06 '24 19:03 twsouthwick

What I supplied is the only step needed. The call to GetItem needs to be changed to an indexer.

doc.WorkbookPart.SharedStringTablePart.SharedStringTable.ChildElements.GetItem(int.Parse(value)).InnerText

How will you rewrite this?

Babufrik123 avatar Mar 06 '24 19:03 Babufrik123

What I supplied is the only step needed. The call to GetItem needs to be changed to an indexer.

doc.WorkbookPart.SharedStringTablePart.SharedStringTable.ChildElements.GetItem(int.Parse(value)).InnerText

Help me rewrite this. U can see getitem here

Babufrik123 avatar Mar 07 '24 09:03 Babufrik123

What I supplied is the only step needed. The call to GetItem needs to be changed to an indexer.

doc.WorkbookPart.SharedStringTablePart.SharedStringTable.ChildElements.GetItem(int.Parse(value)).InnerText

Help me rewrite this. U can see getitem here

doc.WorkbookPart.SharedStringTablePart.SharedStringTable.ChildElements[int.Parse(value)].InnerText

BazInTheAZ avatar Mar 07 '24 18:03 BazInTheAZ

Thanks @BazInTheAZ :) @Babufrik123 I'd recommend taking a look at some of C# specifications so you can understand the syntax here: https://learn.microsoft.com/dotnet/csharp/programming-guide/indexers

twsouthwick avatar Mar 07 '24 20:03 twsouthwick