0
Я прочитал некоторые другие темы об этой теме, но он до сих пор не работает, и я не знаю почему.C# получить листы excel без офиса без OLEDB
Исключено: «Microsoft.ACE.OLEDB.12.0'-Провайдер не зарегистрирован на локальном компьютере. Я уже установил механизм базы данных для Office 2007 и 2010.
У вас есть идеи?
ОС: Win 7 Prof. 64 бит
static void Main(string[] args)
{
OleDbConnection connection = null;
DataTable Sheets = null;
String file = args[0];
String filePath = Path.GetDirectoryName(args[0]);
String connPath = "";
if(Path.GetExtension(file).Equals(".xls"))
connPath = "Provider=Microsoft.Jet.OleDb.4.0; Data Source=" + file + ";Extended Properties=Excel 8.0";
else
connPath = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + file + ";Extended Properties=\"Excel 12.0;HDR=Yes;IMEX=1\"";
try
{
connection = new OleDbConnection(connPath);
connection.Open();
Sheets = connection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
...
Это не является прямым ответом на ваш вопрос, но как вы можете видеть, используя OLEDB имеет много ограничений. Если вам нужен полный контроль над офисными файлами (без офиса), вы можете посмотреть на openxml sdk: https://msdn.microsoft.com/en-us/library/office/bb448854.aspx?f=255&MSPPError=- 2147217396 –