4°C
завтра: 4°C
Погода в Перми
4°C
ночью1°C
утром3°C
завтра4°C
Подробно
 93,29
+0.0399
Курс USD ЦБ РФна 24 апреля
93,2918
+0.0399
 99,56
+0.1961
Курс EUR ЦБ РФна 24 апреля
99,5609
+0.1961
  • Такая проблема. Нужно считать с Excel-документа данные для последующего переброса в txt...
    Т.е. определенные ячейки считываются и заносятся в текстовый файл...
    И вот вопрос ... как всё это дело можно считать?

  • например,
    позднее связывание:
    CreateOLEObject('Excel.Application') + практически идентичная копия макроса Excel

  • яндекс тебе на это ответит...

    Есть как минимум 3 способа, выбирай по вкусу....

    Toyota Vitz 2005 1.3-> Mercedes CLK 2002 2.3 Kompressor-> Kia Sportage 2012 Biturbo T-GDI

  • Причём тут Яндекс? Человек задал конкретный вопрос и хочет получить конкретный ответ :спок:

  • Если имеешь представление о COM, то как два пальца...
    Если уже делал выгрузку через этот самый КОМ, то просто возьми переменную COMVariant, засунь в нее значение выделенного диапазона, и разбери в соответствии - строка это, либо число.

    Но если ты не знаком с COM - тады даже стадо слонов тебе не поможет....

  • Вы бы лучше на Исходниках.ру (см. Полезные ссылки) порылись, это будет эффективнее, чем здесь инфу по крупицам собирать (IMHO).

  • Кстати, это может быть Вам полезно http://www.citforum.ru/programming/delphi/excel/

  • Человек мог бы сначала в поисковиках поискать...
    На запрос "Delphi Excel" ему вывалится КУЧА информации....

    Toyota Vitz 2005 1.3-> Mercedes CLK 2002 2.3 Kompressor-> Kia Sportage 2012 Biturbo T-GDI

  • А человек поискал в поисковике... И ему выдало куча НЕНУЖНОЙ информации...
    Если тебе просто хочется отметиться.. типа я то тут умный.. а вы все дураки... То у тебя не сильно получилось воплотить свою идею в жизнь....

  • Excel:=CreateOleObject('Excel.Application');
    WorkBook:=Excel.WorkBooks.open(Edit1.text);
    WorkSheet:=WorkBook.WorkSheets.Item:1:;
    Вот всё, что нужно было сделать... Это позднее связывание. Есть еще раннее ... там посложнее чуть чуть ... но тоже... У кого такая проблема появиться... могу исходники кинуть

  • В ответ на: А человек поискал в поисковике... И ему выдало куча НЕНУЖНОЙ информации...
    Значит так искал....

    В ответ на: Если тебе просто хочется отметиться.. типа я то тут умный.. а вы все дураки... То у тебя не сильно получилось воплотить свою идею в жизнь....
    Не вы все, а только отдельные личности, не способные найти через поисковик нужную информацию...

    Лично я в свое время искал, нашел минут за 10-15 несколько статей с описанием нескольких способов...

    Почитай тут особенно обрати внимание на пункт "RTFM и STFW: как понять, что вы серьезно облажались".

    Toyota Vitz 2005 1.3-> Mercedes CLK 2002 2.3 Kompressor-> Kia Sportage 2012 Biturbo T-GDI

  • Ты не прав. Форумы нужны для того, что бы человек имел возможность получить помощь или консультацию. Если же думать как ты, то можно снести все топики и оставить один, где будет список доступных поисковиков. Тогда нафига форум вообще :спок:?

  • Вопросы бывают разные...

    Если бы он спросил, какой способ из [перечень из нескольих способов] вы порекомендуете для работы из Delphi с Excel - я бы не возникал...

    Просто у БОЛЬШИНСТВА программеров на Delphi(и не только) рано или поздно возникает потребность работать с Excel. В разных форумах по этому поводу МАССА инфы...

    Лично мне не понятно, зачем лезь в форум и задавать вопросы, предварительно не потратив хотя бы 1 часа на поиск решения в другом месте(документация, поисковик, коллеги на работе и т.д.).

    Toyota Vitz 2005 1.3-> Mercedes CLK 2002 2.3 Kompressor-> Kia Sportage 2012 Biturbo T-GDI

  • Тем не мение. Если ты знаешь способ помочь человеку, но тебе "влом", это не есть хорошо :death: :спок:

  • В ответ на: Тем не мение. Если ты знаешь способ помочь человеку, но тебе "влом", это не есть хорошо :death: :спок:
    Если человек не хочет думать - это не есть хорошо.
    Форум создан для "пробовал-не получается-подскажите", а не для "не пробовал-и не хочу-напишите".
    Солидарность с Egor_M.

  • В ответ на: "не пробовал-и не хочу-напишите"
    Читаем внимательно, ещё раз:
    А человек поискал в поисковике... И ему выдало куча НЕНУЖНОЙ информации... :спок:

  • В ответ на: А человек поискал в поисковике... И ему выдало куча НЕНУЖНОЙ информации... :спок:
    1. заходим на ya.ru
    2. набираем "Delphi & Excel"
    3. первая же ссылка расскажет нам о позднем связывании
    практически аналогичная ситуация и в rambler и в google - нужные статьи на первой же странице результатов поиска.

  • В ответ на: 1. заходим на ya.ru
    2. набираем "Delphi & Excel"
    3. первая же ссылка расскажет нам о позднем связывании
    практически аналогичная ситуация и в rambler и в google - нужные статьи на первой же странице результатов поиска.
    Он прав.

    Самостоятельнее надо быть...

    Toyota Vitz 2005 1.3-> Mercedes CLK 2002 2.3 Kompressor-> Kia Sportage 2012 Biturbo T-GDI

  • Не могу решить следующую проблему - Из Delphi работаю с Excel 2000. Программу переносят на другой комп - там Оффис ХР. Программа ругается и не хочет работать. Как сделать чтобы она работала с любой версией Excelа а не только с 2000?

  • в общем случае - никак

  • А ты с Экселем работаешь через серверные крмпоненты или через OleVariant?

    Осторожнее с травой!
    Если хапнешь много дряни
    Увезут тебя с собой
    Злые инопланетяне

  • Ты бы хоть написал как ругается....

    Toyota Vitz 2005 1.3-> Mercedes CLK 2002 2.3 Kompressor-> Kia Sportage 2012 Biturbo T-GDI

  • Матерно:улыб:

    Осторожнее с травой!
    Если хапнешь много дряни
    Увезут тебя с собой
    Злые инопланетяне

  • Delphi 7.0. В панели Servers установлены компоненты для Office2000. Их и использую. Как для других версий Officа - не знаю.

  • Ну тады понятна! Если работать через OleVariant, тогда таких проблем не возникает.

    Осторожнее с травой!
    Если хапнешь много дряни
    Увезут тебя с собой
    Злые инопланетяне

  • В ответ на: Ну тады понятна! Если работать через OleVariant, тогда таких проблем не возникает.
    если под "работать через OleVariant" подразумевается работа через позднее связывание, то всё равно не получится.
    методы и параметры, увы, различаются.

  • var
    fxla:OLEVariant;
    begin
    fxla:=CreateOLEObject('Excel.Application');

    fxla.Visible:=false;
    fxla.AskToUpdateLinks:=false;
    // fxla.DisplayAlerts:=false;
    fxla.Workbooks.Open(fFileName);
    fxla.Sheets[ASheetName].Select;
    fCSheet:=ASheetName;
    fxla.Cells.Select;
    fxla.Selection.Copy;
    fxla.ActiveWorkbook.Close(false);
    fxla.quit;
    fxla:='';
    // Здесь имеем в буфере обмена весь лист эксель, разделение ячеек #9, строк #13#10, вставить для примера можно в TMemo его методом PastefromClipboard

    end;

    Могу кинуть готовый модуль. Скорость работы этого метода самая высокая.

  • Народ , помогите.

    Оброщаюсь к Excel при помощи компаненты.
    Как сменить лист?
    Как получить имя листа который в данное время активен?

    С уважением, Евгений

  • Кстати у меня таже фигня. Перерыл кучу литературы, шарюсь наwww.delphimaster.ru и других сайтах. Народ в основном работает через Ole а Com компоненты с закладки Server реже встречаются. проблемма у меня таже. В литературе и и-нете встречается такое ExcelApplication1.Sheet('лист1').Name:='новое имя листа' к примеру но компилятор не признает такое. да еще и нет многих функций и процедур которые вылетают по точке хотя они описываются в литературе.
    Пользую Office2000, Delphi6 в Uses прописал Excel2000 и Ole и все что полагается. Эмоций ноль.
    Так что не всегда помогает то что в сети находишь. Часто то что работает у одного у другого не работает. Или какие то ньюансы пропущены.

  • Частично проблему решил!
    Тоже Пользую Office2000, Delphi6 и в Uses прописал Excel2000 .

    Код следующий
    var
    Myexcel:TExcelApplication;

    WSheet: Excel2000._Worksheet;
    MyWorkbook: Excel2000.ExcelWorkbook;
    .....................................................................................
    //============Создать соединение с EXCEL(раннее связывание)==========
    MyExcel := TExcelApplication.Create(Self);
    MyExcel.ConnectKind := ckRunningOrNew;
    MyExcel.Connect;

    //Сделать видемым
    MyExcel.Visible[0]:=true;
    //==============************=================================
    // создать шаблон
    //MyWorkbook := MyExcel.Workbooks.Add(OpenDialog1.FileName,0);

    //Открать книгу
    if Assigned(MyExcel) then
    MyWorkbook := MyExcel.Workbooks.Open(OpenDialog1.FileName, EmptyParam,
    EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam,
    EmptyParam, EmptyParam, EmptyParam, false, 0);

    //Определить рабочий лист
    WSheet := MyWorkbook.Worksheets.Item['лист1 или индекс но без ковычек'] as Excel2000._Worksheet;

    Правдо это несколько разовое удовольствие у меня.
    Если определить рабочий лист один раз и навсегда всё классно.
    О вот со сменной листа часто касячет код...

  • Не знаю, я в C++Builder-е через OlePropertyGet и OlePropertySet никаких проблем не имею.

    Осторожнее с травой!
    Если хапнешь много дряни
    Увезут тебя с собой
    Злые инопланетяне

  • Новая проблема!
    Как создать новую книгу и сохранить ту ,что есть!
    Использую раннее связывание .

    Зарание блогадарен.

  • Коллеги, если не в лом, помогите заработать на отпуск, в долгу не останусь!
    Проблема - MS Excel.
    Задача - кликнув на клетке "правой мышкой" получить список, следующий клик - значение из списка "легло" в клетку.
    Проштудировал всего Уокенбаха (преклоняюсь), ни ответа, ни намёка. А ой как надо.
    Повторяю, отблагодарю. :pivo: :bottle: :роза:
    piotr@miron.lt

  • отправил пример

    Кладоискатель высшей категории

Записей на странице:

Перейти в форум

Модератор: