Гость
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как считать данные c excel не открывая его! / 4 сообщений из 4, страница 1 из 1
11.08.2016, 19:48
    #39290583
gnikspam
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как считать данные c excel не открывая его!
Ребята, подскажите пожалуйста как считать данные c excel не открывая его! Сейчас работает только при открытом файле.

Вот такая строка подключения

Код: c#
1.
const string oleConStr = "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=\"Excel 8.0;HDR=No\";Data Source={0}";



вот так стандартно открываю

Код: c#
1.
2.
3.
4.
5.
var oleConnStr = String.Format(oleConn, fileName);

            OleDbConnection cn = new OleDbConnection(oleConnStr);

            cn.Open();



Ошибка:

An unhandled exception of type 'System.Data.OleDb.OleDbException' occurred in System.Data.dll

Внешняя таблица не имеет предполагаемый формат.
...
Рейтинг: 0 / 0
12.08.2016, 09:50
    #39290768
yura-007
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как считать данные c excel не открывая его!
gnikspam,

Что значит "не открывая его"?
Когда-то мне требовалось делать скриншоты не открытых файлов excel (Excel не запущен, файлы не отображаются на рабочем столе), делал как-то так:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
public void ExportRangeAsJpg(string filename)
        {
            Excel.Application xl = new Excel.Application();
            Excel.Workbook excelWorkbook = xl.Workbooks.Open(filename,
                    0, true, 5, "", "", false, Excel.XlPlatform.xlWindows, "",
                    true, false, 0, true, false, false);

            Excel.Workbook wb = xl.ActiveWorkbook;
            Excel.Range r = wb.ActiveSheet.UsedRange;// wb.ActiveSheet.Range["A1:A2"];
            r.CopyPicture(Excel.XlPictureAppearance.xlScreen, Excel.XlCopyPictureFormat.xlPicture);
           
            if (Clipboard.GetDataObject() != null)
            {
                IDataObject data = Clipboard.GetDataObject();
                image = GetMetaImageFromClipboard();
                pictureBox1.Image = image;
            }
            else
            {
                MessageBox.Show("Clipboard Empty !!");
            }

            excelWorkbook.Close(false);
            if (excelWorkbook != null)
                Marshal.FinalReleaseComObject(excelWorkbook);

            excelWorkbook = null;
        }
...
Рейтинг: 0 / 0
12.08.2016, 10:04
    #39290781
Pallaris
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как считать данные c excel не открывая его!
так работает

Код: c#
1.
2.
3.
4.
5.
6.
string ExcelConnectionString = string.Format(@"Provider=Microsoft.ACE.OLEDB.12.0; Data Source='{0}';" + @"Extended Properties='Excel 12.0 Xml;HDR=YES'", FilePath);

using (OleDbConnection connection = new OleDbConnection(ExcelConnectionString))
{
....
}
...
Рейтинг: 0 / 0
12.08.2016, 10:56
    #39290841
gnikspam
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как считать данные c excel не открывая его!
Pallaris,

спасибо. До вас нашел что проблема в строке подключения. Все верно.
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как считать данные c excel не открывая его! / 4 сообщений из 4, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]