JSA直连数据库

不知道现在JSA是否支持直连数据库了,如果有就最好了,这是一个非常必要的功能。

我是这么变通处理的,也是通过jsa执行sql的一种方法,demo分享给大家:

function get_access(){

let connstr="OLEDB;Provider=Microsoft.ACE.OLEDB.12.0;User ID=Admin;Data Source=C:\\n\\1.accdb;"

let sql="select * from test"

let d=ActiveSheet.QueryTables.Add(connstr,ActiveSheet.Range("a1"),sql)

d.Refresh()

console.log(1)

}

function getaccess_odbc(){

let connstr="ODBC;Driver={Microsoft Access Driver (*.mdb, *.accdb)};User ID=Admin;DBQ=C:/n/1.accdb;"

let sql="select * from test"

let d=ActiveSheet.QueryTables.Add(connstr,ActiveSheet.Range("a1"),sql)

d.Refresh()

console.log(1)

}

function getexcel(){

let connstr=`OLEDB;Provider=Microsoft.ACE.OLEDB.12.0;Data Source=${ThisWorkbook.Path}\\1.xlsx;Extended Properties='Excel 12.0;HDR=Yes';`

let sql="select * from [Sheet1$]"

let x=ActiveSheet.QueryTables.Add(connstr,Range("A1"),sql)

x.Refresh()

console.log(1)

}

function getexcel_odbc(){

let connstr="ODBC;Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};DBQ=C:\\n\\1.xlsx;"

let sql="select role_id from [Sheet1$]"

let x=ActiveSheet.QueryTables.Add(connstr,Range("A1"),sql)

x.Refresh()

console.log(1)

}

function getmysql_odbc(){

let connstr="ODBC;Driver={MySQL ODBC 8.0 ANSI Driver};SERVER=127.0.0.1;DATABASE=test;UID=root;PWD=root;PORT=3306;"

let sql="select * from test"

let x=ActiveSheet.QueryTables.Add(connstr,Range("A1"),sql)

x.Refresh()

console.log(1)

}

funciton getDuckDB_odbc(){

//64位WPS

let connstr="ODBC;Driver={DuckDB Driver};Database=:memory:" //这里使用内存库,也可以指定其他库

let connstr="ODBC;Driver={DuckDB Driver}"

let sql="from read_csv('c:/db/sale/**/*.csv',encoding='gb18030',filename=true)"

let d=ActiveSheet.QueryTables.Add(connstr,ActiveSheet.Range("a1"),sql)

d.Refresh()

console.log(1)

}

北京
浏览 2619
2
3
分享
3 +1
2 +1
全部评论