使用 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 操作的主要内容,如果未能解决你的问题,请参考以下文章

将 Excel 电子表格导入 phpMyAdmin

使用 TransferSpreadsheet 导入 Excel 电子表格时出错

Coldfusion - 向Excel电子表格添加复选框

电子表格中如何将男女筛选并统计出人数?

如何将access中的数据导出为EXCEL文件?

pb中 如何把两个表中的内容导出到一个电子表格 如何把一个字段作为下拉列表框的item