23 августа, среда 18:44
Bankir.Ru

Объявление

Свернуть
Пока нет объявлений.

Excell и 20-значные счета

Свернуть
X
  • Фильтр
  • Время
  • Показать
Очистить всё
новые сообщения

  • Excell и 20-значные счета

    Пытаюсь настроить прямой экспорт отчетов из Диасофт ВФ в ексель. В АБС создается отчет в виде текстового файла с разделителями-табуляциями, который передается сразу на вход ехелю. Вроде все нормально разделяется на колонки, однако в отчете встречается стандартный 20-изначный счет, который по умолчанию ехель воспринимает как число, переводит его в экспоненциальную форму и теряет напрочь хвост счета.
    Вопрос -- можно ли каким-нибудь образом объяснить ехелю, что это не число, а текст. Или просто увеличить его разрядность, чтобы номер счета не переводился по умолчанию в нечто типа 4.07Е19.
    Serg Voronov

  • #2
    2 Модераторы

    Просьба не переносить в группу Диасофт, проблема не в нем, а в невизуальном открытии txt екселем.
    Serg Voronov

    Комментарий


    • #3
      Serg_FSB при выгрузке добавить символ "'" (без двойных кавычек)

      Комментарий


      • #4
        Так я и сделал. Но этот символ болтается в полученом файле и слегка напрягает пользователей. Хотелось бы выяснить, существует ли возможность объяснить ехелю, что он не прав.
        Serg Voronov

        Комментарий


        • #5
          Serg_FSB у меня пользователей не напрягает - они его просто не видят... А так - надо с форматами ячеек возиться - ексель умный, он поймёт

          Комментарий


          • #6
            Serg_FSB по идее на листе этого апострофа ['] они не должны видеть, он только в строке формул

            Комментарий


            • #7
              Видят.... В соотв. ячейках видно '40702810xxxxxxxxxxxx
              Serg Voronov

              Комментарий


              • #8
                Serg_FSB У Вас настолько продвинутые юзеры, что смотрят на содержимое ячеек... Ну и объясните им, что это - формула в екселе, называется "принудительное форматирование в текстовый формат ячейки"

                Комментарий


                • #9
                  2 vmc
                  Мысль интересная. Надо попробывать.
                  Serg Voronov

                  Комментарий


                  • #10
                    Serg_FSB Стоп. В ячейках они видеть - то вряд ли могут - только в строке формул... Если только ексель как-то нестандартно настроен...

                    Комментарий


                    • #11
                      Serg_FSB И печатает с апострофами?

                      Комментарий


                      • #12
                        Serg_FSB
                        А ты как его в экселе открываешь своим макросом или стандартным визардом? в первом случае - всегда сам формат ячейки задать можешь, а во втором - просто указываешь, что столбец текстовый... вообще проблемы не вижу. только что и тот и др. способ попробовал - все работает. Без всяких кавычек.

                        Комментарий


                        • #13
                          Shuric
                          Никак не открываю. excell.exe t123456764.txt

                          vmc
                          Вижу и в ячейке и в строке и на принтере. Ехель никак не настроен. Т.е. как поставлен, так и стоит. Может мы имеем в виду разные символы? У меня стоит тот, который на кнопке с русской "Э"
                          Serg Voronov

                          Комментарий


                          • #14
                            ГЫ! действительно при таком открытии и там и сям видит.
                            Shuric дык макросом бывает такая фишка, сталкивался.
                            Serg_FSB апостроф тот же... Придётся видимо открывать файлину по-другому

                            Комментарий


                            • #15
                              Serg_FSB Можно поправить ? Excel - стандартно пишется с одной l, может все-таки он увас по другому настроен ?

                              А для решения этой проблемы лучше завести файлик с правильным форматированием ячеек, а затем импортировать туда текстовый файл (надеюсь структура отчета у ваc не меняется ?) при помощи макроса.

                              Комментарий


                              • #16
                                Ээээээээ Уважаемые..... Ау... Есть такая штука - Data Interchange Format Эксел его вполне даже очень понимает...
                                Вот пример с счетами (отчет доделаете сами )

                                TABLE
                                0,1
                                "????1"
                                VECTORS
                                0,3
                                ""
                                TUPLES
                                0,3
                                ""
                                DATA
                                0,0
                                ""
                                -1,0
                                BOT
                                1,0
                                "A"
                                1,0
                                "20202840400010000001"
                                0,-0,77
                                V
                                -1,0
                                BOT
                                1,0
                                "B"
                                1,0
                                "20202840400010000001"
                                0,0,23
                                V
                                -1,0
                                BOT
                                1,0
                                "C"
                                1,0
                                "20202840400010000001"
                                0,1,23
                                V
                                -1,0
                                EOD

                                Комментарий


                                • #17
                                  Кстати если Эксел XP и выше то там есть еще XML. А если не брезгуете то попробуйте OO совместно с UNO. Можно организовать такой сервис (легко). На сервере висит UNO демон (он гораздо меньше чем весь OO) И получает в сокет данные. Вам по почте прилетает XLS.....

                                  Комментарий


                                  • #18
                                    Dem_aka_Deep НУУ, это круто... Я бы если из макроса низя ячейками управлять, на VBA бы макрос написал, это проще было бы - типа открываешь текстовый файл, обрабатываешь, и т.п. ( проще по-моему, и к серваку незачем привязываться)

                                    Комментарий


                                    • #19
                                      Dem_aka_Deep
                                      Вы будете смеяться, но ваш Data Interchabge Format преспокойно влетел в ехель со счетами в экспоненциальной форме.

                                      А насчет макроса -- как передать этому макросу имя текстового файла?
                                      Serg Voronov

                                      Комментарий


                                      • #20
                                        Serg_FSB В зависимости от ситуации - например, диалогом...

                                        Комментарий


                                        • #21
                                          или параметром

                                          Комментарий


                                          • #22
                                            А вот здесь вступают в действие механизмы воркфлы (DiasoftBank Workflow). Файл с отчетом создается во tmp - каталоге и имя у него жутко непроизносимое. Напоминаю, что задача -- загнать файл в ексель для нешибко грамотного пользователя. Грамотный сохранит отчет в свой каталог, откроет потом ручками и укажет формат столбца.

                                            А вот мысли про DIF меня заинтересовали. Только пока не работают они.
                                            Serg Voronov

                                            Комментарий


                                            • #23
                                              Serg_FSB Да. похоже буду смеяться. Проверил - хваленый эксел действительно делает этот финт ушами. Хорошо что я на ОО уже больше года сижу.
                                              Прошу прощения за такой (как-бы это сказать...) лопух...

                                              vmc Не не проще. Я вот что скажу. Есть 100 компьютеров. Вопервых требуется обновлять новые версии макроса на 100 (можно и по сети конечно). Во вторых требуется 100 ЛИЦЕНЗИЙ на офис. (А так и XLSView хватит). В третьих если это отчет то обычно скажем из Диасофта формируем отчет. Потом ждать 5 минут пока эксел запустится? А потом еще лезть в печать? А тут сразу сформировался и полез печатать (т.к. сервер-то ВСЕГДА в памяти).

                                              Комментарий


                                              • #24
                                                Serg_FSB Могу порекомендоввать сделать ДРАЙВЕР принтера (в терминологии Diasoft 4x4) который читает текстовик и по OLE Automation засовывает все в Excell Могу даже пример намылить. Но т.к. он на питоне думаю это мало поможет вам....

                                                Это я заглаживаю вину

                                                Комментарий


                                                • #25
                                                  Dem_aka_Deep Против слова ЛИЦЕНЗИЯ в этой стране мало у кого найдутся аргументы, тем более если оное слово употребляется во множественном числе

                                                  Комментарий


                                                  • #26
                                                    Dem_aka_Deep
                                                    Спасибо конечно, но в ВФ нету понятия "драйвер принтера". И потом, я искал простой путь решения проблемы. Чтобы с инимальными усилиями отчеты из диасофта загонять в excel. Сложный путь известен -- пиши скульный запрос к базе и выкидывай результаты хоть в ексель, хоть в http.
                                                    Serg Voronov

                                                    Комментарий


                                                    • #27
                                                      Serg_FSB А низя по окончаннии отчета имя файла передавать внешней программе как в 4x4?

                                                      Комментарий


                                                      • #28
                                                        Можно. Именно так я и вызываю excel.exe %f
                                                        Serg Voronov

                                                        Комментарий


                                                        • #29
                                                          Serg_FSB Во а в этом батнике я предлагаю написать не excel.exe %f, а нечто вроде следующего.

                                                          import sys
                                                          import win32com.client
                                                          from win32com.client import Dispatch

                                                          xl = Dispatch("Excel.Application")
                                                          document = xl.Workbooks.Open(xls_name)
                                                          l = 0
                                                          for i in open(sys.argv[1],'r').readlines():
                                                          xl.Range("A"+str(l)).Value = i
                                                          xl.Visible = 1


                                                          Тоесть данный скрипт запульнет все только в первый столбец. Но в цикле нам никто не мешает делать разбор и зафигаривать в нужный столбец. АКроме того мы можем сделать заголовок в отчете который нам скажет тип и ширину каждого столбца. И можно еще шаблон (шапки там и прочая).

                                                          Тут конечно много упрощений. Но работать будет. Кроме того сразу предостерегаю попдбные скрипты и привели меня к xml т.к. OLE штука довольно капризная в момент активного девелопмента Excell даже машину перезагружал. Но когда сделал работает неплохо (только юзеру права сильно обрезать нельзя - под гостем не работает )

                                                          Комментарий


                                                          • #30
                                                            Можно в форуме делать форматируемый текст? А то он мне код поцокал....

                                                            Комментарий

                                                            Пользователи, просматривающие эту тему

                                                            Свернуть

                                                            Присутствует 1. Участников: 0, гостей: 1.

                                                            Обработка...
                                                            X