如何通过ExcelJS读取Excel文件中的数据库连接字符串与命令文本?
提取Excel中的数据库连接字符串与命令文本
Excel的数据库连接信息存储在文件内部的xl/connections.xml中,ExcelJS本身没有直接提供提取这些信息的API,可通过以下两种方式实现:
方法1:直接解析Excel包内的connections.xml文件
Excel本质是压缩包,借助adm-zip解压后读取目标XML文件,再用xml2js解析内容:
const AdmZip = require('adm-zip'); const xml2js = require('xml2js'); const zip = new AdmZip('a.xlsx'); const connectionsXml = zip.readAsText('xl/connections.xml'); xml2js.parseString(connectionsXml, (err, result) => { if (err) throw err; const connections = result.connections.connection; connections.forEach(conn => { const connectionString = conn.$.connectionString; const commandText = conn.dbPr && conn.dbPr[0].$.commandText; console.log(`连接名称: ${conn.$.name}`); if (connectionString) console.log(`连接字符串: ${connectionString}`); if (commandText) console.log(`命令文本: ${commandText}`); console.log('---'); }); });
方法2:使用SheetJS(xlsx库)提取
SheetJS提供了直接读取连接信息的封装能力,代码更简洁:
const XLSX = require('xlsx'); const workbook = XLSX.readFile('a.xlsx'); if (workbook.Connections) { workbook.Connections.forEach(conn => { console.log(`连接名称: ${conn.Name}`); if (conn.Connection) console.log(`连接字符串: ${conn.Connection}`); if (conn.CommandText) console.log(`命令文本: ${conn.CommandText}`); console.log('---'); }); }
注:Excel中查看这些连接信息的位置为:「数据」选项卡 →「查询和连接」面板 → 选中目标连接后右键选择「连接属性」,在弹出窗口中查看「连接字符串」和「命令文本(查询)」
内容的提问来源于stack exchange,提问作者S. Bailey
相关产品推荐
相关产品推荐

