dfinke / ImportExcel

PowerShell module to import/export Excel spreadsheets, without Excel

Home Page:https://www.powershellgallery.com/packages/ImportExcel/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Exporting worksheet to csv while keeping excel formats (where applicable)

dtrue opened this issue · comments

Hi, there! Thanks for such a great library. Quick question - is there any way to preserve formatting when exporting to csv. It looks like in the excel package there is a value and a text field. I'm wondering if there is a way to convert to .csv and being able to use the text version (for say custom formats). Obviously formatting that contains color or whatever wouldn't follow but curious if I can get regular format masks to be exported.

Thanks so much!
Dan

Thanks for trying ImportExcel.

so if the the Excel sheet has "$1,234.00" that is what you want in the csv?

Yep! Or say a (1,000) instead of -1000. Or if we append some text suffix to a value...such as the value is 2 but the custom format text is 2 days.

Off the top of my head, I don't recall having that. I'll think about if it is in there. Took a quick scan, didn't see anything.

Need to take a deeper look. If it is not there, will think about how hard to add.

You're awesome! The functionality is to try and replicate if I 'save as' my xlsx worksheet to csv. It prompts me that I'll lose some unsupported stuff (e.g. background color)...but everything else seems to work as expected. Wondering if there is a way to mimic this but obviously without having to click through prompts about saving/losing features.

Ah, so the save as in Excel when choosing csv, it keeps the $1,235.00?

Without looking at the code I do believe Export-Excel returns the value. I think text has the formatting. Not sure how much.
Not sure how much may break if a param enables returning either one.

Yes observationally it seems to keep all the desired format variations.

Hey there @jhoneill. I'm mixing up params in my head between Import and Export -excel. There was no switch on Export-Excel to grab the .text of a cell rather than .value?

Time to do a spike test on this.

Hey there @jhoneill. I'm mixing up params in my head between Import and Export -excel. There was no switch on Export-Excel to grab the .text of a cell rather than .value?

Time to do a spike test on this.

No ... we're generally sticking number / text / date / boolean and then applying formatting as distinct operation with Export.

Import is bringing each row in as an object so each cell in that row comes in as the number/date/string in .Value which is almost always what we want. Getting .text instead of .value would be easy enough

@jhoneill thanks, yeah, thinking of adding something like [Switch]$AsText then `$targetProperty = if($AsText) {'text'} else {'value'}.

Hopefully off to the races.