XLS Border Formatter

no dumb questions - only dumb answers! (or something like that…)

Here’s another thing that seems kind of weird in my understanding of what you’re doing. As i understand it, you’re using the CSV Writer node to make a CSV file, but then you’re using the File Reader node to read it and do further stuff with it. … Why are you creating that CSV file instead of linking the node just before the CSV Writer node to the node just after the File Reader node? Are you doing some sort of processing on the CSV file before you use the File Reader to read it back in?

So once I use the csv writer to convert the file from an excel to a csv file then I should be ready to use with my python script and I shouldn’t need to do anything else?
Or am I missing something and getting confused from things I read from others in the forum documents and sample workflows?
I was just using the file reader since I thought there was more I needed to do to prepare my csv file to make sure it is clean and ready to use in my script. I will try my csv file in the script to test for errors with my file
Thanks for all your help,

Hmmm… so, again i’m not super clear here, but i understand your workflow to be:

[Excel Reader] → [Some Nodes that fix empty Cells] → [CSV Writer] (→ Python Script)

Is this the case? Is the output table of the last of the ‘some nodes’ lacking in correct data?

((Once this much is nailed down, you should then be able to improve your workflow to use Python nodes to continue to control the execution from KNIME without needing to step outside of KNIME.))

Sounds Great Thanks
So I want to Format the Columns so I can see where the empty cells are using the XLS Cell Formatter then I will use your suggestion of fixing the empty cells with the string Manipulation before making a csv file.
I tried doing something similar to the sample workflow but it failed. Do I need to add another node to get this to work.

Oooph - i feel like we’ve just jumped to square one again.

I thought the only reason you were formatting and writing an Excel file out again was to do some sort of human-review for empty cells; … and that after that human review, you’d eventually write to your preferred format of CSV. Are we on the same page here?

If we’re on the same page, why not look for the cells with missing data (by which i assume you are saying “blank cells”… ?) in KNIME.

(In other words, i’m not sure why we keep coming back to “I want to Format the Columns so I can see where the empty cells are using the XLS Cell Formatter.” Why is a human reviewer needed in this situation?)

The guy I am working with keeps asking so to satisfy him I would give him what he wants and the plan is to add the Missing Value Node to the XLS Formatter (apply) then the CSV Writer I figure I can give him what he wants if the XLS Formatter Node

XLS Formatter (apply ------------------Missing Value Node---------------------then the CSV Writer
I don’t think I really need it but I am also taking it as a learning experience as I learn the KNIME Analytical Tool.

The Missing Value node might not do what you want. There is a specific kind of cell value for missing data - for example, it might be used if a null value has been read from a database. The Excel Reader node may not be using this, but may instead just be producing empty (e.g zero length strings) cells.)

Hmm… ok - so something like:

[Excel Reader] → [Missing Value or other node] → [CSV Writer]
                      \ → [XLS Cell Formatter] → [XLS Formatter (apply)]
                       \                             / (via flow variable output)
                        \→ [Excel Writer]   ←-------/

i guess. (I’ve never used the XLS formatter nodes, but just looking at what they’re doing, it doesn’t make sense for the Writer’s output to flow into the XLS Formatter apply node - how would the formatting information ever make it to the writer?)

The flow variable connection between Writer and Formatter (apply) is not for passing variables, but for setting a temporal dependency. The XLS file needs to be completely written first, before the formatting can start.

In the last workflow screenshot provided, you are missing a XLS Control Table Generator node. You can never pass direct data into the XLS formatter nodes, it expects column names and rowids just like Excel (e.g. A to 7, 1 to 10). Generating these ‘control tables’ from existing data makes the usage of the extension very dynamic and adjusting to varying input table specifications. To get started, you could rather try the XLS Control Table from Cell Range node (without any inputs connected). The tag you assign there (e.g. ‘header’) should re-appear in the cell & border formatter nodes.

It’s also a good idea to look at the examples (either on the KNIME server or KNIME hub) and the documentation:

Best regards


1 Like

This topic was automatically closed 182 days after the last reply. New replies are no longer allowed.