如何读取受密码保护的Excel文件
我需要的是使用OLEDB连接读取受密码保护的Excel文件 如果有人可以解决此问题,请告诉我... 谢谢
在没有密码的情况下可以正常工作
const readline = require('readline');
const fs = require('fs');
const FILE_PATH = 'data.ndjson';
module.exports = async () =>
{
const linesCount = await getLinesCount();
const randomLineIndex = Math.floor(Math.random() * linesCount);
const content = await getLineContent(randomLineIndex);
return content;
};
//
// HELPERS
//
function getLineReader()
{
return readline.createInterface({
input: fs.createReadStream(FILE_PATH)
});
}
async function getLinesCount()
{
return new Promise(resolve =>
{
let counter = 0;
getLineReader()
.on('line', function (line)
{
counter++;
})
.on('close', () =>
{
resolve(counter);
});
});
}
async function getLineContent(index)
{
return new Promise(resolve =>
{
let counter = 0;
getLineReader().on('line', function (line)
{
if (counter === index)
{
resolve(line);
}
counter++;
});
});
}
答案 0 :(得分:-1)
显然,如果您尝试从VB.NET打开受密码保护的Excel工作簿,则会收到错误消息“无法解密文件”。将Password=
值添加到您的连接字符串也不起作用。
要解决此问题,请首先使用Microsoft.VisualBasic.Interaction.GetObject()
打开Excel工作簿,然后使用要使用的连接/记录集方法将其打开。 GetObject()
打开提示用户输入密码,然后您可以使用首选方法自由打开文件。例如:
' Open the Excel workbook to prompt for the password
Dim xl As Object
xl = GetObject(CurrentProject.Path & "\" & "MASTER JAN 2009.xls")
' Adding your code here should work as the workbook will be opened and so
' you should be able to connect to it.
当然,您的用户必须知道密码。