Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WIP Word functionality #1260

Draft
wants to merge 12 commits into
base: develop
from

Conversation

@KnapSac
Copy link

commented Jul 27, 2019

This is a small step towards implementing Word functionality, but I would love to hear your thoughts about it.

@KnapSac KnapSac changed the title Word functionality WIP Word functionality Jul 27, 2019

@igitur

This comment has been minimized.

Copy link
Member

commented Jul 29, 2019

If we start doing Word support, then I think the library must be split up into ClosedXML.Core for shared functions, ClosedXML.Excel and ClosedXML.Word. @Pankraty, agree?

@Pankraty

This comment has been minimized.

Copy link
Member

commented Jul 29, 2019

I agree, in general. But what functionality can be shared between those two? They seem so different...

@KnapSac

This comment has been minimized.

Copy link
Author

commented Jul 29, 2019

I'm also not sure what functions can be used by both, but one possible issue I was thinking about was styling. If we want to implement styling for Word, I don't think we can use IXLStyle and related things. Should I name the styling differently, or do you have other ideas about that? Naming it something along the lines of IXLDocStyle is possible, but I don't know if that is the best way to go.

KnapSac added some commits Jul 30, 2019

@igitur

This comment has been minimized.

Copy link
Member

commented Jul 31, 2019

I agree, in general. But what functionality can be shared between those two? They seem so different...

Mostly the helper functions, e.g. dealing with reading and writing OpenXML will be shared. If we did it correctly, it should be everything outside the ClosedXML.Excel namespace in the current codebas.e

@igitur

This comment has been minimized.

Copy link
Member

commented Jul 31, 2019

@Pankraty

This comment has been minimized.

Copy link
Member

commented Jul 31, 2019

There is also a drawback. While we have a single library we can define most of the helpers as internal classes and be more reluctant in their API and backward compatibility. Once we extract this in Core assembly we have to make it all public increasing the amount of APIs to support.

BTW, I've been working on a read-only API for faster reading. It is going to read just a necessary data on demand. If I succeed this part can also be shared as I am trying to do it quite generic. But I am on the very beginning of the long path.

@KnapSac

This comment has been minimized.

Copy link
Author

commented Jul 31, 2019

Are you using the default CodeMaid settings? Because I use CodeMaid, but I may have changed a couple settings, which I can change back ofcourse.

@igitur

This comment has been minimized.

Copy link
Member

commented Jul 31, 2019

Yes, I use the default settings.

@KnapSac

This comment has been minimized.

Copy link
Author

commented Jul 31, 2019

Oke, will do.

@igitur

This comment has been minimized.

Copy link
Member

commented Jul 31, 2019

Maybe we should create a solution-specific CodeMaid config file.

@igitur

This comment has been minimized.

Copy link
Member

commented Aug 1, 2019

There is also a drawback. While we have a single library we can define most of the helpers as internal classes and be more reluctant in their API and backward compatibility. Once we extract this in Core assembly we have to make it all public increasing the amount of APIs to support.

BTW, I've been working on a read-only API for faster reading. It is going to read just a necessary data on demand. If I succeed this part can also be shared as I am trying to do it quite generic. But I am on the very beginning of the long path.

What about the 'make internals visible to' approach that we use for the tests project?

ClosedXML/Word/XLDocStyle.cs Outdated Show resolved Hide resolved
@igitur

This comment has been minimized.

Copy link
Member

commented Aug 1, 2019

@KnapSac A tip... use the OpenXML Productivity Tools to reflect the code from a given Word document. You can then use this general reflected code for you saving the document to file. This was the approach taken by the Excel side originally.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
3 participants
You can’t perform that action at this time.