Access defined names and assigned values #83

Closed
opened 2014-07-10 16:58:42 +00:00 by developergdd · 16 comments
developergdd commented 2014-07-10 16:58:42 +00:00 (Migrated from github.com)

Hi,

Congrats on your project.
I am trying to obtain all values and formulas of a file.
I have managed to get it to work, however some formulas use defined names instead of cells.

For example:
works well, A2=A1

doesn't work , A2=First_Value, where the name "First_Value" is assigned to A1

Is there a way to get all the defined names and assignations? Or each cell formula with the assigned value instead of the name?

Best Regards
João Bernardino

Hi, Congrats on your project. I am trying to obtain all values and formulas of a file. I have managed to get it to work, however some formulas use defined names instead of cells. For example: works well, A2=A1 doesn't work , A2=First_Value, where the name "First_Value" is assigned to A1 Is there a way to get all the defined names and assignations? Or each cell formula with the assigned value instead of the name? Best Regards João Bernardino
SheetJSDev commented 2014-07-10 17:53:47 +00:00 (Migrated from github.com)

@developergdd thanks for reaching out! (It kinda sucks that github makes you register in order to submit issues -- we should find a better issue tracker).

Right now the defined names are not captured. If you want to hack on this, the data is contained in the definedNames section of the workbook xml. For example the relevant XML in https://github.com/SheetJS/test_files/blob/master/defined_names_simple.xlsx?raw=true is:

  <definedNames>
    <definedName name="SHEETjs" comment="This is a sheet-scope reference" localSheetId="0">Sheet1!$A$2</definedName>
    <definedName name="SheetJS" comment="defined names just suck  excel formulae are bad  MS should feel bad">Sheet1!$A$1</definedName>
  </definedNames>

The relevant code segment is in the parse_ws_xml function https://github.com/SheetJS/js-xlsx/blob/master/bits/77_wbxml.js#L53-L57.

If you would prefer to wait, I will push a fix in the next update

@developergdd thanks for reaching out! (It kinda sucks that github makes you register in order to submit issues -- we should find a better issue tracker). Right now the defined names are not captured. If you want to hack on this, the data is contained in the definedNames section of the workbook xml. For example the relevant XML in https://github.com/SheetJS/test_files/blob/master/defined_names_simple.xlsx?raw=true is: ``` <definedNames> <definedName name="SHEETjs" comment="This is a sheet-scope reference" localSheetId="0">Sheet1!$A$2</definedName> <definedName name="SheetJS" comment="defined names just suck excel formulae are bad MS should feel bad">Sheet1!$A$1</definedName> </definedNames> ``` The relevant code segment is in the parse_ws_xml function https://github.com/SheetJS/js-xlsx/blob/master/bits/77_wbxml.js#L53-L57. If you would prefer to wait, I will push a fix in the next update
developergdd commented 2014-07-11 09:56:58 +00:00 (Migrated from github.com)

Hi,

Since this functionality, to read XLSX's files, is part of a long project we will probably wait for that next update.

Thank you for the interest in the issue and for the fast reply

Hi, Since this functionality, to read XLSX's files, is part of a long project we will probably wait for that next update. Thank you for the interest in the issue and for the fast reply
casunley commented 2014-07-11 16:09:07 +00:00 (Migrated from github.com)

Hello developergdd,

Can you comment on how you grabbed your values from your excel sheet? I am working on a project where that is also functionality I need but am having some trouble.

Thanks

Hello developergdd, Can you comment on how you grabbed your values from your excel sheet? I am working on a project where that is also functionality I need but am having some trouble. Thanks
SheetJSDev commented 2014-07-11 17:15:05 +00:00 (Migrated from github.com)

@casunley when you read the file you get back an object representing the workbook.

workbook.SheetNames is an ordered list of the sheets in the workbook

workbook.Sheets[sheetname] returns a data structure representing the sheet. Each key that does not start with ! corresponds to a cell (using A-1 notation).

If you want to get cell B2 from the first sheet in the workbook, you would use

var cellB2 = workbook.Sheets[workbook.SheetNames[0]]['B2']

If the cell is present, you get back a cell object. To get the raw value, use

cellB2.v

To get the formatted text, use

cellB2.w

There are other utility functions like sheet_to_csv and sheet_to_json that give you different views of the workbook. They take a worksheet object. For example, to generate a CSV of the first sheet:

XLSX.utils.sheet_to_csv(workbook.Sheets[workbook.SheetNames[0]])

Take a look at some of the examples to see how to use them in practice.

@casunley when you read the file you get back an object representing the workbook. workbook.SheetNames is an ordered list of the sheets in the workbook workbook.Sheets[sheetname] returns a data structure representing the sheet. Each key that does not start with ! corresponds to a cell (using A-1 notation). If you want to get cell B2 from the first sheet in the workbook, you would use ``` var cellB2 = workbook.Sheets[workbook.SheetNames[0]]['B2'] ``` If the cell is present, you get back a cell object. To get the raw value, use ``` cellB2.v ``` To get the formatted text, use ``` cellB2.w ``` There are other utility functions like sheet_to_csv and sheet_to_json that give you different views of the workbook. They take a worksheet object. For example, to generate a CSV of the first sheet: ``` XLSX.utils.sheet_to_csv(workbook.Sheets[workbook.SheetNames[0]]) ``` Take a look at some of the examples to see how to use them in practice.
developergdd commented 2014-07-11 17:33:43 +00:00 (Migrated from github.com)

hi casunley,

In my case so far i just wanted to test the functions of the parser.

Basically i use the following:

//to get all data from all sheets
to_formulae(workbook);

//to get all data from one sheet
XLSX.utils.get_formulae(workbook.Sheets[0]);

//to get the formula from the cell
workbook.Sheets[0]["B2"].f;

//to get the value from the cell
workbook.Sheets[0]["B2"].v;

hi casunley, In my case so far i just wanted to test the functions of the parser. Basically i use the following: //to get all data from all sheets to_formulae(workbook); //to get all data from one sheet XLSX.utils.get_formulae(workbook.Sheets[0]); //to get the formula from the cell workbook.Sheets[0]["B2"].f; //to get the value from the cell workbook.Sheets[0]["B2"].v;
casunley commented 2014-07-14 15:18:49 +00:00 (Migrated from github.com)

Everything is working as intended! Thanks for the help. Just needed a push to get through this roadblock for a very obvious answer.

Curtis Sunley Jr
Developer Intern
Varrow
e: csunley@varrow.commailto:csunley@varrow.com | p: 201-965-6528
w: www.varrow.comhttp://www.varrow.com
[cid:A5B955B7-203A-4DC4-9CF0-2EACA672BC7F]
[facebook_2]http://www.facebook.com/varrowinc[twitter_2]https://twitter.com/varrow_[linkedin_2]http://www.linkedin.com/company/varrow

From: developergdd [mailto:notifications@github.com]
Sent: Friday, July 11, 2014 1:34 PM
To: SheetJS/js-xlsx
Cc: Curtis Sunley
Subject: Re: [js-xlsx] Access defined names and assigned values (#83)

hi casunley,

In my case so far i just wanted to test the functions of the parser.

Basically i use the following:

//to get all data from all sheets
to_formulae(workbook);

//to get all data from one sheet
XLSX.utils.get_formulae(workbook.Sheets[0]);

//to get the formula from the cell
workbook.Sheets[0]["B2"].f;

//to get the value from the cell
workbook.Sheets[0]["B2"].v;


Reply to this email directly or view it on GitHubhttps://github.com/SheetJS/js-xlsx/issues/83#issuecomment-48759643.

Everything is working as intended! Thanks for the help. Just needed a push to get through this roadblock for a very obvious answer. Curtis Sunley Jr Developer Intern Varrow e: csunley@varrow.commailto:csunley@varrow.com | p: 201-965-6528 w: www.varrow.comhttp://www.varrow.com [cid:A5B955B7-203A-4DC4-9CF0-2EACA672BC7F] [facebook_2]http://www.facebook.com/varrowinc[twitter_2]https://twitter.com/varrow_[linkedin_2]http://www.linkedin.com/company/varrow From: developergdd [mailto:notifications@github.com] Sent: Friday, July 11, 2014 1:34 PM To: SheetJS/js-xlsx Cc: Curtis Sunley Subject: Re: [js-xlsx] Access defined names and assigned values (#83) hi casunley, In my case so far i just wanted to test the functions of the parser. Basically i use the following: //to get all data from all sheets to_formulae(workbook); //to get all data from one sheet XLSX.utils.get_formulae(workbook.Sheets[0]); //to get the formula from the cell workbook.Sheets[0]["B2"].f; //to get the value from the cell workbook.Sheets[0]["B2"].v; — Reply to this email directly or view it on GitHubhttps://github.com/SheetJS/js-xlsx/issues/83#issuecomment-48759643.
jasconius commented 2015-05-07 17:52:22 +00:00 (Migrated from github.com)

Seeking an update on this. I have need for using Defined Names

Seeking an update on this. I have need for using Defined Names
jasconius commented 2015-05-08 14:42:48 +00:00 (Migrated from github.com)

So I'm feeling my way through this and trying to make a patch that will add DefinedNames and I am stuck on a fundamental problem. The parsing routine in 77_wbxml.js is oriented to only be concerned with parsing the contents of an XML tag as follows

<myTag myProp="value">

Which works for basically everything except for DefinedNames which routinely look more like the following:

<myTag>value</myTag>

Looks like another data.match().forEach will need to be added to focus on the internals of the tag and it needs to fuse itself into the data in an orderly fashion. I'll see what I can come up with.

So I'm feeling my way through this and trying to make a patch that will add DefinedNames and I am stuck on a fundamental problem. The parsing routine in 77_wbxml.js is oriented to only be concerned with parsing the contents of an XML tag as follows &lt;myTag myProp="value"&gt; Which works for basically everything except for DefinedNames which routinely look more like the following: &lt;myTag&gt;value&lt;/myTag&gt; Looks like another data.match().forEach will need to be added to focus on the internals of the tag and it needs to fuse itself into the data in an orderly fashion. I'll see what I can come up with.
jasconius commented 2015-05-08 18:18:02 +00:00 (Migrated from github.com)

I have a working draft of this in a fork. Need to do a little more testing but I hope to get a pull request out in the next week or so.

I have a working draft of this in a fork. Need to do a little more testing but I hope to get a pull request out in the next week or so.
SheetJSDev commented 2017-03-19 23:17:15 +00:00 (Migrated from github.com)

Defined names are captured in workbook object's Workbook.Names field. For the defined_names_simple.xlsx sample test file the object looks like this:

{
  '!names': [ 'SHEETjs', 'SheetJS' ],
  SHEETjs: {
    Name: 'SHEETjs',
    Comment: 'This is a sheet-scope reference',
    Ref: 'Sheet1!$A$2'
  },
  SheetJS: { 
    Name: 'SheetJS',
    Comment: 'defined names just suck  excel formulae are bad  MS should feel bad',
    Ref: 'Sheet1!$A$1'
  } 
}

The !names field is an ordered list of the defined names, while each name is its own key. The keys of the object include Name for the name of the defined name, Comment for the comment and Ref for the actual reference string. XLSB follows the same pattern. We will be filling out the other formats soon (issue #599 tracks progress for the other formats)

Defined names are captured in workbook object's `Workbook.Names` field. For the [defined_names_simple.xlsx sample test file](https://github.com/SheetJS/test_files/blob/master/defined_names_simple.xlsx?raw=true) the object looks like this: ```js { '!names': [ 'SHEETjs', 'SheetJS' ], SHEETjs: { Name: 'SHEETjs', Comment: 'This is a sheet-scope reference', Ref: 'Sheet1!$A$2' }, SheetJS: { Name: 'SheetJS', Comment: 'defined names just suck excel formulae are bad MS should feel bad', Ref: 'Sheet1!$A$1' } } ``` The `!names` field is an ordered list of the defined names, while each name is its own key. The keys of the object include `Name` for the name of the defined name, `Comment` for the comment and `Ref` for the actual reference string. XLSB follows the same pattern. We will be filling out the other formats soon (issue #599 tracks progress for the other formats)
capndave commented 2019-01-29 22:46:57 +00:00 (Migrated from github.com)

Did this ever get worked out? Is there a way to use Workbook.Names to parse with xlsx-calc?

I'm not sure if this is a problem with xlsx-calc or with xlsx library but I'm not able to handle defined names for cells or ranges.

const xlsx = require('xlsx')
const xlsx_calc = require('xlsx-calc')
const formulajs = require('formulajs')

xlsx_calc.import_functions(formulajs)

const workbook = xlsx.readFile('filename')

const calcd = xlsx_calc(workbook)

throws an error,

{"error":{},"level":"error","message":"uncaughtException: Undefined NBHDJ\nError: Undefined NBHDJ\n    at checkVariable (/home/administrator/Documents/equity-grids-2019/node_modules/xlsx-calc/lib/xlsx-calc.js:228:19)\n    at exec (/home/administrator/Documents/equity-grids-2019/node_modules/xlsx-calc/lib/xlsx-calc.js:236:21)\n    at Exp.self.calc (/home/administrator/Documents/equity-grids-2019/node_modules/xlsx-calc/lib/xlsx-calc.js:302:9)\n    at exec_minus (/home/administrator/Documents/equity-grids-2019/node_modules/xlsx-calc/lib/xlsx-calc.js:254:38)\n    at Exp.self.calc (/home/administrator/Documents/equity-grids-2019/node_modules/xlsx-calc/lib/xlsx-calc.js:268:9)\n    at exec (/home/administrator/Documents/equity-grids-2019/node_modules/xlsx-calc/lib/xlsx-calc.js:238:44)\n    at Exp.self.calc (/home/administrator/Documents/equity-grids-2019/node_modules/xlsx-calc/lib/xlsx-calc.js:281:9)\n    at exec (/home/administrator/Documents/equity-grids-2019/node_modules/xlsx-calc/lib/xlsx-calc.js:238:44)\n    at Exp.self.calc (/home/administrator/Documents/equity-grids-2019/node_modules/xlsx-calc/lib/xlsx-calc.js:278:9)\n    at exec (/home/administrator/Documents/equity-grids-2019/node_modules/xlsx-calc/lib/xlsx-calc.js:238:44)","stack":"Error: Undefined NBHDJ\n    at checkVariable (/home/administrator/Documents/equity-grids-2019/node_modules/xlsx-calc/lib/xlsx-calc.js:228:19)\n    at exec (/home/administrator/Documents/equity-grids-2019/node_modules/xlsx-calc/lib/xlsx-calc.js:236:21)\n    at Exp.self.calc (/home/administrator/Documents/equity-grids-2019/node_modules/xlsx-calc/lib/xlsx-calc.js:302:9)\n    at exec_minus (/home/administrator/Documents/equity-grids-2019/node_modules/xlsx-calc/lib/xlsx-calc.js:254:38)\n    at Exp.self.calc (/home/administrator/Documents/equity-grids-2019/node_modules/xlsx-calc/lib/xlsx-calc.js:268:9)\n    at exec (/home/administrator/Documents/equity-grids-2019/node_modules/xlsx-calc/lib/xlsx-calc.js:238:44)\n    at Exp.self.calc (/home/administrator/Documents/equity-grids-2019/node_modules/xlsx-calc/lib/xlsx-calc.js:281:9)\n    at exec (/home/administrator/Documents/equity-grids-2019/node_modules/xlsx-calc/lib/xlsx-calc.js:238:44)\n    at Exp.self.calc (/home/administrator/Documents/equity-grids-2019/node_modules/xlsx-calc/lib/xlsx-calc.js:278:9)\n    at exec (/home/administrator/Documents/equity-grids-2019/node_modules/xlsx-calc/lib/xlsx-calc.js:238:44)","exception":true,"date":"Tue Jan 29 2019 16:36:27 GMT-0600 (Central Standard Time)","process":{"pid":12726,"uid":1000,"gid":1000,"cwd":"/home/administrator/Documents/equity-grids-2019","execPath":"/usr/local/n/versions/node/11.4.0/bin/node","version":"v11.4.0","argv":["/usr/local/n/versions/node/11.4.0/bin/node","/home/administrator/Documents/equity-grids-2019/app.js"],"memoryUsage":{"rss":196091904,"heapTotal":124727296,"heapUsed":101315992,"external":25369145}},"os":{"loadavg":[2.5673828125,2.44921875,2.46728515625],"uptime":348172},"trace":[{"column":19,"file":"/home/administrator/Documents/equity-grids-2019/node_modules/xlsx-calc/lib/xlsx-calc.js","function":"checkVariable","line":228,"method":null,"native":false},{"column":21,"file":"/home/administrator/Documents/equity-grids-2019/node_modules/xlsx-calc/lib/xlsx-calc.js","function":"exec","line":236,"method":null,"native":false},{"column":9,"file":"/home/administrator/Documents/equity-grids-2019/node_modules/xlsx-calc/lib/xlsx-calc.js","function":"Exp.self.calc","line":302,"method":"calc","native":false},{"column":38,"file":"/home/administrator/Documents/equity-grids-2019/node_modules/xlsx-calc/lib/xlsx-calc.js","function":"exec_minus","line":254,"method":null,"native":false},{"column":9,"file":"/home/administrator/Documents/equity-grids-2019/node_modules/xlsx-calc/lib/xlsx-calc.js","function":"Exp.self.calc","line":268,"method":"calc","native":false},{"column":44,"file":"/home/administrator/Documents/equity-grids-2019/node_modules/xlsx-calc/lib/xlsx-calc.js","function":"exec","line":238,"method":null,"native":false},{"column":9,"file":"/home/administrator/Documents/equity-grids-2019/node_modules/xlsx-calc/lib/xlsx-calc.js","function":"Exp.self.calc","line":281,"method":"calc","native":false},{"column":44,"file":"/home/administrator/Documents/equity-grids-2019/node_modules/xlsx-calc/lib/xlsx-calc.js","function":"exec","line":238,"method":null,"native":false},{"column":9,"file":"/home/administrator/Documents/equity-grids-2019/node_modules/xlsx-calc/lib/xlsx-calc.js","function":"Exp.self.calc","line":278,"method":"calc","native":false},{"column":44,"file":"/home/administrator/Documents/equity-grids-2019/node_modules/xlsx-calc/lib/xlsx-calc.js","function":"exec","line":238,"method":null,"native":false}]}

where NBHDJ is a defined name on the spreadsheet

Did this ever get worked out? Is there a way to use Workbook.Names to parse with xlsx-calc? I'm not sure if this is a problem with xlsx-calc or with xlsx library but I'm not able to handle defined names for cells or ranges. ``` const xlsx = require('xlsx') const xlsx_calc = require('xlsx-calc') const formulajs = require('formulajs') xlsx_calc.import_functions(formulajs) const workbook = xlsx.readFile('filename') const calcd = xlsx_calc(workbook) ``` throws an error, ``` {"error":{},"level":"error","message":"uncaughtException: Undefined NBHDJ\nError: Undefined NBHDJ\n at checkVariable (/home/administrator/Documents/equity-grids-2019/node_modules/xlsx-calc/lib/xlsx-calc.js:228:19)\n at exec (/home/administrator/Documents/equity-grids-2019/node_modules/xlsx-calc/lib/xlsx-calc.js:236:21)\n at Exp.self.calc (/home/administrator/Documents/equity-grids-2019/node_modules/xlsx-calc/lib/xlsx-calc.js:302:9)\n at exec_minus (/home/administrator/Documents/equity-grids-2019/node_modules/xlsx-calc/lib/xlsx-calc.js:254:38)\n at Exp.self.calc (/home/administrator/Documents/equity-grids-2019/node_modules/xlsx-calc/lib/xlsx-calc.js:268:9)\n at exec (/home/administrator/Documents/equity-grids-2019/node_modules/xlsx-calc/lib/xlsx-calc.js:238:44)\n at Exp.self.calc (/home/administrator/Documents/equity-grids-2019/node_modules/xlsx-calc/lib/xlsx-calc.js:281:9)\n at exec (/home/administrator/Documents/equity-grids-2019/node_modules/xlsx-calc/lib/xlsx-calc.js:238:44)\n at Exp.self.calc (/home/administrator/Documents/equity-grids-2019/node_modules/xlsx-calc/lib/xlsx-calc.js:278:9)\n at exec (/home/administrator/Documents/equity-grids-2019/node_modules/xlsx-calc/lib/xlsx-calc.js:238:44)","stack":"Error: Undefined NBHDJ\n at checkVariable (/home/administrator/Documents/equity-grids-2019/node_modules/xlsx-calc/lib/xlsx-calc.js:228:19)\n at exec (/home/administrator/Documents/equity-grids-2019/node_modules/xlsx-calc/lib/xlsx-calc.js:236:21)\n at Exp.self.calc (/home/administrator/Documents/equity-grids-2019/node_modules/xlsx-calc/lib/xlsx-calc.js:302:9)\n at exec_minus (/home/administrator/Documents/equity-grids-2019/node_modules/xlsx-calc/lib/xlsx-calc.js:254:38)\n at Exp.self.calc (/home/administrator/Documents/equity-grids-2019/node_modules/xlsx-calc/lib/xlsx-calc.js:268:9)\n at exec (/home/administrator/Documents/equity-grids-2019/node_modules/xlsx-calc/lib/xlsx-calc.js:238:44)\n at Exp.self.calc (/home/administrator/Documents/equity-grids-2019/node_modules/xlsx-calc/lib/xlsx-calc.js:281:9)\n at exec (/home/administrator/Documents/equity-grids-2019/node_modules/xlsx-calc/lib/xlsx-calc.js:238:44)\n at Exp.self.calc (/home/administrator/Documents/equity-grids-2019/node_modules/xlsx-calc/lib/xlsx-calc.js:278:9)\n at exec (/home/administrator/Documents/equity-grids-2019/node_modules/xlsx-calc/lib/xlsx-calc.js:238:44)","exception":true,"date":"Tue Jan 29 2019 16:36:27 GMT-0600 (Central Standard Time)","process":{"pid":12726,"uid":1000,"gid":1000,"cwd":"/home/administrator/Documents/equity-grids-2019","execPath":"/usr/local/n/versions/node/11.4.0/bin/node","version":"v11.4.0","argv":["/usr/local/n/versions/node/11.4.0/bin/node","/home/administrator/Documents/equity-grids-2019/app.js"],"memoryUsage":{"rss":196091904,"heapTotal":124727296,"heapUsed":101315992,"external":25369145}},"os":{"loadavg":[2.5673828125,2.44921875,2.46728515625],"uptime":348172},"trace":[{"column":19,"file":"/home/administrator/Documents/equity-grids-2019/node_modules/xlsx-calc/lib/xlsx-calc.js","function":"checkVariable","line":228,"method":null,"native":false},{"column":21,"file":"/home/administrator/Documents/equity-grids-2019/node_modules/xlsx-calc/lib/xlsx-calc.js","function":"exec","line":236,"method":null,"native":false},{"column":9,"file":"/home/administrator/Documents/equity-grids-2019/node_modules/xlsx-calc/lib/xlsx-calc.js","function":"Exp.self.calc","line":302,"method":"calc","native":false},{"column":38,"file":"/home/administrator/Documents/equity-grids-2019/node_modules/xlsx-calc/lib/xlsx-calc.js","function":"exec_minus","line":254,"method":null,"native":false},{"column":9,"file":"/home/administrator/Documents/equity-grids-2019/node_modules/xlsx-calc/lib/xlsx-calc.js","function":"Exp.self.calc","line":268,"method":"calc","native":false},{"column":44,"file":"/home/administrator/Documents/equity-grids-2019/node_modules/xlsx-calc/lib/xlsx-calc.js","function":"exec","line":238,"method":null,"native":false},{"column":9,"file":"/home/administrator/Documents/equity-grids-2019/node_modules/xlsx-calc/lib/xlsx-calc.js","function":"Exp.self.calc","line":281,"method":"calc","native":false},{"column":44,"file":"/home/administrator/Documents/equity-grids-2019/node_modules/xlsx-calc/lib/xlsx-calc.js","function":"exec","line":238,"method":null,"native":false},{"column":9,"file":"/home/administrator/Documents/equity-grids-2019/node_modules/xlsx-calc/lib/xlsx-calc.js","function":"Exp.self.calc","line":278,"method":"calc","native":false},{"column":44,"file":"/home/administrator/Documents/equity-grids-2019/node_modules/xlsx-calc/lib/xlsx-calc.js","function":"exec","line":238,"method":null,"native":false}]} ``` where NBHDJ is a defined name on the spreadsheet
jwhitmarsh commented 2020-03-04 15:40:43 +00:00 (Migrated from github.com)

@capndave did you ever find a solution to this?

@capndave did you ever find a solution to this?
capndave commented 2020-03-04 16:27:10 +00:00 (Migrated from github.com)

No but I moved on and used another tool.

On Wed, Mar 4, 2020 at 9:40 AM James notifications@github.com wrote:

@capndave https://github.com/capndave did you ever find a solution to
this?


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/SheetJS/sheetjs/issues/83?email_source=notifications&email_token=ADTOOZJ32J2HA5LLRHJO5Y3RFZY73A5CNFSM4ARQGPXKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOENYQUDA#issuecomment-594610700,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ADTOOZNKORHVBGBVSD64AQLRFZY73ANCNFSM4ARQGPXA
.

No but I moved on and used another tool. On Wed, Mar 4, 2020 at 9:40 AM James <notifications@github.com> wrote: > @capndave <https://github.com/capndave> did you ever find a solution to > this? > > — > You are receiving this because you were mentioned. > Reply to this email directly, view it on GitHub > <https://github.com/SheetJS/sheetjs/issues/83?email_source=notifications&email_token=ADTOOZJ32J2HA5LLRHJO5Y3RFZY73A5CNFSM4ARQGPXKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOENYQUDA#issuecomment-594610700>, > or unsubscribe > <https://github.com/notifications/unsubscribe-auth/ADTOOZNKORHVBGBVSD64AQLRFZY73ANCNFSM4ARQGPXA> > . >
jwhitmarsh commented 2020-03-04 16:53:06 +00:00 (Migrated from github.com)

Thanks for letting me know - would you recommend the new tool you're using? What is it?

Thanks for letting me know - would you recommend the new tool you're using? What is it?
SheetJSDev commented 2020-03-04 17:01:05 +00:00 (Migrated from github.com)

@jwhitmarsh If wb is your workbook, then wb.Workbook.Names is an array of the defined names as described in https://docs.sheetjs.com/#defined-names

@capndave if https://github.com/fabiooshiro/xlsx-calc/issues/20 was your issue, the in-workbook names should have been addressed (at least the issue is marked closed). The names with square brackets reference external workbooks, which is something not supported in our open source build but we offer as part of our Pro formula calculator -- that build will inspect the external reference caches if they exist

@jwhitmarsh If `wb` is your workbook, then `wb.Workbook.Names` is an array of the defined names as described in https://docs.sheetjs.com/#defined-names @capndave if https://github.com/fabiooshiro/xlsx-calc/issues/20 was your issue, the in-workbook names should have been addressed (at least the issue is marked closed). The names with square brackets reference external workbooks, which is something not supported in our open source build but we offer as part of our [Pro formula calculator](https://sheetjs.com/pro) -- that build will inspect the external reference caches if they exist
capndave commented 2020-03-04 21:26:25 +00:00 (Migrated from github.com)

I used the Python package pywin32, which ended up being pretty flexible and
easy!

On Wed, Mar 4, 2020 at 10:53 AM James notifications@github.com wrote:

Thanks for letting me know - would you recommend the new tool you're
using? What is it?


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/SheetJS/sheetjs/issues/83?email_source=notifications&email_token=ADTOOZLE2UQQB2SAFST43XLRF2BPJA5CNFSM4ARQGPXKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOENY4AQQ#issuecomment-594657346,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ADTOOZL5QHADW5BO52KDQG3RF2BPJANCNFSM4ARQGPXA
.

I used the Python package pywin32, which ended up being pretty flexible and easy! On Wed, Mar 4, 2020 at 10:53 AM James <notifications@github.com> wrote: > Thanks for letting me know - would you recommend the new tool you're > using? What is it? > > — > You are receiving this because you were mentioned. > Reply to this email directly, view it on GitHub > <https://github.com/SheetJS/sheetjs/issues/83?email_source=notifications&email_token=ADTOOZLE2UQQB2SAFST43XLRF2BPJA5CNFSM4ARQGPXKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOENY4AQQ#issuecomment-594657346>, > or unsubscribe > <https://github.com/notifications/unsubscribe-auth/ADTOOZL5QHADW5BO52KDQG3RF2BPJANCNFSM4ARQGPXA> > . >
Sign in to join this conversation.
No Milestone
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: sheetjs/sheetjs#83
No description provided.