使用 Excel 电子表格作为数据库的 Electron-Python 应用程序:使用 npm 包 - database-js-xlsx 进行 CRUD 操作
Posted
技术标签:
【中文标题】使用 Excel 电子表格作为数据库的 Electron-Python 应用程序:使用 npm 包 - database-js-xlsx 进行 CRUD 操作【英文标题】:Electron-Python Application with Excel Spreadsheet as Database : Using npm package - database-js-xlsx for CRUD Operations 【发布时间】:2021-07-08 19:21:42 【问题描述】:我正在开发这个包,用于在 Electron-Python 框架中以 Excel 电子表格作为数据库来开发应用程序 我遇到了错误,
**(node:14796) UnhandledPromiseRejectionWarning: RangeError: Invalid string length
at ..\node_modules\database-js-xlsx\index.js:507:63
(Use `node --trace-warnings ...` to show where the warning was created)
(node:14796) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
(node:14796) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.**
当我尝试点击节点 --unhandled-rejections=strict .js
**..\node_modules\database-js-xlsx\index.js:507
sql = sql.substr(0, err.offset) + '.' + sql.substr(err.offset + 1);
^
RangeError: Invalid string length**
谁能帮帮我?
下面是我的代码,
**var database = require('database-js-xlsx/index');
var connection = database.open( Database: 'yields.xlsx' );
function handleError(error)
console.log("ERROR:", error);
process.exit(1);
connection.query("SELECT a,b FROM Sheet1$A1:C4 Where c= 'Apples' ").then((data) =>
console.log(data[0].a)
if (data.length != 1)
handleError(new Error("Invalid data returned"));
else
console.log(data)
connection.close().then(() =>
process.exit(0);
).catch(handleError);
).catch(handleError);**
提前致谢。
【问题讨论】:
【参考方案1】:您似乎在查询一个单元格而不是工作表。
试试SELECT a,b FROM Sheet1 Where c= 'Apples'
我还觉得应该命名列而不是寻址。
因此,如果 a、b、c 是您的列名,我希望它们在您的第一行中被标记。不确定这个...
【讨论】:
请将其表述为有条件的解释性答案,以避免给人以澄清问题而不是回答的印象(应该使用评论而不是答案,比较meta.stackexchange.com/questions/214173/…)。例如像“如果你的问题是......那么解决方案是......因为......。”以上是关于使用 Excel 电子表格作为数据库的 Electron-Python 应用程序:使用 npm 包 - database-js-xlsx 进行 CRUD 操作的主要内容,如果未能解决你的问题,请参考以下文章