Creating component-based abilities

As I continue to go through and get comfortable with coding again, I find myself with another system-related question. As a preface, I’ve gone through and read several of the threads on ability system implementation, spreadsheet capabilities, etc.

The base system

I’ve begun creating an equipment-based ability system using composition. I have the “equipment”, that holds the stats and attributes of said equipment, as well as defines how it interacts with the character. I’m also in the process of creating the necessary components, like “effects” and “targeting”.

Question 1: Making the equipment

Once everything is completed, I’d like new equipment to be made by creating entries in an equipment spreadsheet. So, an entry for a sword might be an entry named “Sword”, with type “weapon”, sub-type “melee”, target “AoE”, effect “damage”, mesh “VanillaSword”, etc etc. I take these attributes, use them to define what a “sword” is, then create it in the character’s inventory. First, is this generally the right way to go about it? Would it be better to make blueprints of “equipment” for instances of new equipment?

Questions 2: Interpreting the Spreadsheet

So, if the spreadsheet approach isn’t completely backwards, how should I be storing and interpreting this data? What I’m specifically having trouble wrapping my head around is what to do with spreadsheet fields that need to encompass an unknown number of parameters.

Effects, for example- Should I make a field for every effect, that contains attributes for the effect (like for poison, a duration and damage per tick)? Would it be better to make an “effect” field that contains a string, where I write something like “poison(5,10), damage(30)”, that is then interpreted into actual calls to “effects”? Both of those seem like bad solutions, but I just can’t think about what to do.