Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: Экспорт excel файла из другой программы

Доброго времени суток. Подскадите, имеется программа из которой можно делать экспорт в эксель, но выбирать объем экспорта я не могу. По умолчанию стоит 2 суток. Можно ли каким - либо образом через макрос автоматизировать этот экспорт. Просто если вытягивать данные За год по два дня это очень долго
Спасибо.
Ответ: Diomel, этот вопрос надо задавать разработчику программы или на форуме, посвященном этой программе.
Или копайте в сторону AutoIt, как предложил Hugo121.
Вопрос: Экспорт Excel в DataGridView с формулами

Здравствуйте.
Хотелось бы поинтересоваться ,можно ли реализовать мою идею.

Хочу загружать в Datagridview excel файл.
С этим все понятно.

Но не понятно можно ли в самом excel прописывать формулу для расчёта не с самого excel а с формы.

Допустим в форме у меня есть 2 текст бокса. В 1 Текст боксе Значение 3 , во 2 текст боксе значение 5.
3 Кнопка загрузить excel в datagrid.

Как мне в экселе написать формулу TextBox1.Value + TextBox2.Value

Чтобы нажатие на кнопку загрузки excel в datagrid , в ячейке выводилась сумма 8.
Ответ: Юпатов Дмитрий, не знаю. Будем делать)) Спасибо еще раз)
Вопрос: Как в Excel сделать функция для быстрого подсчета цифр через тире

Вот пример, хочу это сделать в Excel
нужно быстро решить это, так как их очень много, забирает время


есть цифры от-по: 1-412
надо убрать
1a) 1, 2, 3, 12, 25, 30, 31, 33, 34, 38, 41, 42, 43, 70, 71, 72, 74, 75, 77, 78, 80, 82, 84, 85, 97, 111, 122, 123, 125, 126, 135, 137, 138, 139, 141, 142, 144, 204, 212, 213, 214, 230, 239, 240, 243, 249, 250, 251, 255, 256, 270, 271, 274, 298, 299, 300, 301, 302, 323, 333, 335, 336, 347, 350, 351, 352, 353, 354, 355, 356, 372, 373, 374, 375, 376, 377, 386, 388, 391, 392, 397, 398, 399, 400, 403, 409, 410, 411

чтобы вышло
1b) Номера от 4 по 412 итого 324, это было подсчитано в текстовом Akelpad, но долго по времени
4-11, 13-24, 26-29, 32, 35-37, 39, 40, 44-69, 73, 76, 79, 81, 83, 86-96, 98-110, 112-121, 124, 127-134, 136, 140, 143, 145-203, 205-211, 215-229, 231-238, 241, 242, 244-248, 252-254, 257-269, 272, 273, 275-297, 303-322, 324-332, 334, 337-346, 348, 349, 357-371, 378-385, 387, 389, 390, 393-396, 401, 402, 404-408, 412

к примеру на 1 лист не вмещается все
подсчитать тогда две части
1) 4-11, 13-24, 26-29, 32, 35-37, 39, 40, 44-69, 73, 76, 79, 81, 83, 86-96, 98-110, 112-121, 124, 127-134, 136, 140, 143, 145-203, 205-211, 215-229, 231-238
2) 241, 242, 244-248, 252-254, 257-269, 272, 273, 275-297, 303-322, 324-332, 334, 337-346, 348, 349, 357-371, 378-385, 387, 389, 390, 393-396, 401, 402, 404-408, 412

324 дел (№ 4-412)

2) Номера от 1 по 409
1, 3, 12, 25, 30, 34, 41-43, 70-72, 74, 77, 111, 126, 135, 137-139, 141, 144, 204, 212, 214, 230, 239, 243, 249, 255, 256, 271, 298, 323, 336, 353, 355, 375-377, 388, 409

42 дел (№ 1-409)

3) соединить
324+42
чтобы получить совмещение
№ 1, 3-30, 32, 34-37, 39-74, 76, 77, 79, 81, 83, 86-96, 98-121, 124, 126-141, 143-212, 214-239, 241-249, 252-269, 271-273, 275-298, 303-332, 334, 336-346, 348, 349, 353, 355, 357-371, 375-385, 387-390, 393-396, 401, 402, 404-409, 412
итого 366 дел

можно решить задачу чуть быстрее в Excel?
прилагаю цифры которые убираются и по строкам лежат (цифры каждый раз могут быть разными поэтому хотелось бы многофункциональную помощь в этом деле)
Ответ: Alex77755, там узкий столбец )

Добавлено через 5 минут
Alex77755, разбивается при большем количестве в определенном столбце, но нам надо это в Excel а в Word для копирования и заранее просчитанный же удобно переносить мне и если не вмещается там, то в Excel задать два диапазона... ну например для подсчета 1-5220 точно не вместится, поэтому к примеру посчитать от 1 до 3115 и 3116-5220 остаток

Добавлено через 4 минуты
Alex77755, но не тогда когда от1-до 30 показывает почему то 66
1-30 и исключая те что нужно убрать с столбца A от 1-30
1-30 = например исключив 7 =23
Вопрос: Экспорт из EhLib в Excel

сломал голову в поисках как выглядят эти опции Options: TDBGridEhExportAsXlsxOptions

procedure ExportDBGridEhToXlsx(DBGridEh: TCustomDBGridEh; const FileName: String ; Options: TDBGridEhExportAsXlsxOptions; IsSaveAll: Boolean = True);


надо написать команду экспорта в эксель, но нигде не могу найти что же туда вводить.

ExportDBGridEhToXlsx(grd1,dlgSave1.FileName,ЧЕРТОВАЯ ОПЦИЯ!!!,True);
Ответ: Kast2K,

Пробовал - не помогает.
Кстати, подобный вопрос про экспорт русскоязычного текста так и остался с 2014 года неотвеченным на форуме EhLib.
Вопрос: Обновление подключений Excel на SharePoint online

Добрый день уважаемые форумчане!
Первых раз пишу на данном форуме - если не правильно выражаюсь - прошу извинить.
Проблема следующая:
Есть БД PostgreSQL.
Решил попробовать проводить аналитику в Power View. Увлекся - понравилось. Зарегистрировался на SharePoint. Решил выложить туда.
Проблема заключается в обновлении данных (Обновить все подключения) в Excel с SharePointa.
Т.е. например в базу внесены изменения. Логично, что при нажатии кнопки Обновить все подключения - должно обновиться на SharePoint.
В настоящий момент выдает ошибку при нажатии кнопки "Обновить все подключения":
НЕ УДАЛОСЬ ОБНОВИТЬ ВНЕШНИЕ ДАННЫЕ (Заголовок ошибки), Не удалось обновить подключения к данным в этой книге. Сбой произошел при обновлении следующих подключений - "наименование подключения" (Сообщение ошибки)
При этом, если я открываю в локальном Excel Он у меня все обновляет - я пересохраняю на Sharepoint - и все ок. Но приходится делать лишнее действие.
Что я сделал:
1. Создал файл Excel на SharePoint
2. Открыл с SharePointa в локальном Excel.
3. Подключил внешние данные: Вкладка "Данные"=> "Из других источников" => "Из мастера подключения данных" => "ODBC DSN"=> Выбираю подключение к базе PostgreSQL.
4. Подключается таблица.
5. Перехожу опять во вкладку "Данные"=> "Подключения" => "Свойство" => "Определение" => "Экспорт файла подключения" => Указываю путь на сайт SharePoint на библеотеку подключений.
6. После п.5 создается файл ODC в библиотеке подключений.- т.е. файлу Excel на SharePoint уже есть откуда цеплять данные.
7. Пересохраняю файл (автоматически сохраняется на SharePoint).

По идее должно все работать. Т.е. файл лежит на SharePoint. Подключение лежит на Share Point в библеотеке подключений.

Уважаемые форумчане - готов перечислить символические 500 рублей вознаграждения тому кто даст рекомендацию, которая исправит данную ошибку. Дело принципа - сидел 2 дня, перепробовал все что можно - никакого толку.
По запросу готов выложить картинку ошибки
Ответ: dzone,
Простите, а в админке какой?
Sharepoint или в Excel-Файл-Параметры-Центр Управления Безопасностью?
Вопрос: Аутентификация и Excel

Всем добрый день.
Начну из далека. Есть сайт (WebForms), он работает и продолжает развиваться. Кто то забивает данные, а кто их видит в удобном оформлении. Короче говоря - статистика. И вот развитие дошло до этапа когда клиент хочет эти данные у себя в Excel_е видеть. И вот тут начинается....
Ругается в этом месте:
...
Imports Microsoft.Office.Interop.Excel
Imports Excel = Microsoft.Office.Interop.Excel
...
Dim excelApp As New Microsoft.Office.Interop.Excel.Application() <- на эту строку указывает.
...
Текст ошибки:
Retrieving the COM class factory for component with CLSID {00024500-0000-0000-C000-000000000046} failed due to the following error: 80070005 Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED)).....

Не привожу весь текст ошибки, да бы не утомлять читателя.
Если я правильно понял гугл, ошибка говорит о том, что у клиента, который хочет перетащить данные в Excel нет прав на работу с ним (с Excel_ем). Решение напрашивается само сабой. Так возьми и дай ему эти права. Проблема вся в том, что я не знаю кому довать эти права. Наверно будете смеятся, но не торопитесь.
Начал разбираться с клиентом. Прочитать под каким именем работает клиент не получилось. User.Identity.Name и HttpContext.Current.User.Identity.Name возвращают пустое значение. И частично это объяснимо. В файле Web.config указано:
    <authentication mode="Forms">
      <forms loginUrl="~/Account/Login.aspx" timeout="2880" />
    </authentication>    
Т.е. авторизация идет через указанный логин и пароль, должна идти...
Но на сайте эта авторизация не используется. Да! Указана! Но не используется. Сделана доморощенная авторизация. Почему?
Наверно на то есть оправдания. Количество пользователей не более двухсот. Логины и пароли назначены им один раз и по жизни. Это связано не с личными качествами клиента, а с той должностью которую он занимает. Реорганизация предприятий вещь не частая. Там и роли, там и права и обязанности все учтено. Вообщем получается так, что IIS о них ни чего не знает. Точнее знает, но они для него все на одно лицо. А вот я об этом лице ни чего не знаю. Догадываюсь, что это IUSRS (у меня IIS7.0), так называемый Anonymus. Но прочитать я его не могу. Почему? И второе. Если это анонимный пользователь, то как его тогда прописать в DCOM - MS ExcelApplication. Ведь он (DCOM) не знает о тех, кого создает IIS. Значить надо прописывать пользователя в системе (Win.server 2008), прописывать его в DCOM с правами и прописывать его в IIS как анонимного пользователя (что бы сайт продолжал работать без внесения изменений в плане авторизации и Excel мог запускаться). Подскажите правильный ход мыслей у меня? Или выдаю желаемое за действительное. Растолкуйте пожалуйста. Или куда копать?
Ответ: hVostt, спасибо большое за помощь. Все получилось. Оказывается оно давно заработало. Проблема была в том, что кнопка для экспорта в Excel находилась внутри UpdatePanel и нужно было всего лишь задать PostBackTrigger. Чуть крыша не поехала пока до причины добрался.
Вопрос: Как можно импортировать данные из Excel в любую табл (с возможностью редактирования) в VB6

Есть Excel файл и есть таблица в VB6, нужно импортировать к примеру все значения 1 столбца из Excel в таблицу VB. Как это можно сделать, может у кого-то есть код? В интернете много примеров экспорта из VB в Excel, а мне нужно наоборот.
Выручайте.
Ответ:
Dim B As Double, P As Double, U As Double
Dim Ex As Object, WB As Object, M()

Set Ex = CreateObject("Excel.Application")
Set WB = Ex.Workbooks.Open(App.Path & "\x.xls")
M = WB.worksheets(1).UsedRange.Value
WB.Close
Set Ex = Nothing

В массиве М все данные из первого листа.
Можно считывать нужный диапазон
Вопрос: Вставить данные из массива на лист Excel

Здравствуйте. помогите решить следующий вопрос, плиз.

Добавил данные с листа1 в массив

Dim a()
Dim r As Range

Sheets("Лист1").Select
Set r = [A1:D2000]
cc = r.Columns.Count
rc = r.Rows.Count
ReDim a(1 To rc, 1 To cc)
a = r.Value

затем произвел сданными к-л действия

Вопрос
Необходимо вставить изменённые данные обратно в Excel на лист2.
Какой самый простой и быстрый способ вставить данные из массива на лист Excel?
Ответ:
Папа Игорь
_slan_
...и все таки - давайте проверим наши подходы на задачке?...


И о тестировании.

Не для самоутверждения, а для страхования новичков от использования непродумманных советов.

Вот тест измеряющий Ваш и мой "подходы".

Public Sub Test()
    '
    Dim MyArr As Range
    Set MyArr = [A1:A10]
    '
    Dim arr
    arr = [A1:A10]
    '
    Dim Counter As Long
    '
    Dim tm: tm = VBA.Now()
    '
    For Counter = 1 To 20000 Step 1
        MyArr.Copy Destination:=Sheets("Лист2").Range("A1")
    Next Counter
    Debug.Print (VBA.Now() - tm)
    '
    tm = VBA.Now()
    '
    For Counter = 1 To 20000 Step 1
        Sheets("Лист2").Range("A1").Resize(UBound(arr), UBound(arr, 2)) = arr
    Next Counter
    Debug.Print (VBA.Now() - tm)
End Sub

Результат в окне отладки.


куда же Вы дели те самые ... из первоначального топика. Ведь в них-то и суть. Без этого не стоило и затевать ничего.
а значения с одного места на другое я могу перенести в два раза быстрее:

Sheets("Лист2").Range("A1").Resize(myarr.rows.count,myarr.columns.count).value=myarr.value

а зачем вам нужно было копировать и форматы Вы нам объясните..
Вопрос: Как экспортировать в Excel на разные листы

Может кто подскажет, как сделать экспорт в файл (например: fevral.xls), в листы (export; import)/
Часть с DW надо в один лист, а часть в другой по определенному признаку.
Вопрос: не понятно как экспортировать даты в Excel

Уважаемые Форумчане!

Экспортирую таблицу из SQL Server'a через Delphi в Excel 2007. Все экспортируется как положенно, но вот постоянная проблема с датами. Экспортирую я помассивно. Все элементы массива типа Variant. Но есть одна проблема, при экспорте формат ячейки в которую экспортируется дата меняется неизвестно от чего, то она текстовая, то числовая. Но вот отображение её всегда в числовом виде.

Проблему удалось решить преобразуя все даты в строки, все отображается корректно, но опять же не хочу это так оставлять, т.к. возможно пользователю понадобится сделать фильтр по месяцу, или же использовать дату в ячейке для вычислений каких нибудь, а там текст - а это не есть хорошо.

Надеюсь что кто нибудь сталкивался с подобной проблемой и поможет мне разобраться в данной ситуации
Ответ: В Excel-e есть древний баг: когда через Automation задаешь Range.NumberFormat на самом деле отрабатывает Range.NumberFormatLocal. Лечится либо макросом, либо шаблоном с форматированием (условным форматированием).