Добро пожаловать к нам в гости! Наш сайт посвящён программе NeoBook, с помощью которой вы легко сможете создавать собственные мультимедиа-приложения без необходимости изучать сложные языки программирования! Зарегистрируйтесь, чтобы стать членом нашего сообщества.
Функция записи из текстового файла в таблицу Эксель. Для правильной записи по столбцам и строкам в текстовом файле надо записывать данные со знаком - разделителем.В общем текстовый файл чем то становится похож на таблицу- ну а функция записывает всё сразу в Эксель.В архиве функция,пример, текстовый файл-пример, и файл эксель. (3 часа работы) - попозже то же самое перпишу для ворда...
Приношу извинения, перезалил, видимо позапарке нето что надо подсунул...
Добавлено (15 Марта 2017, 16:40) --------------------------------------------- есть возможность напрямую переписывать базы .dbf в таблицу эксель - но что то не так всё идёт, базы видит и считывает- таблицу составляет(имена полей всё нормально отображаются)- а вот в полях крякозябры Цифры идут нормально-а буквы никак.. попозже может разберусь...
Добавлено (15 Марта 2017, 16:41) --------------------------------------------- с вордом сначала закончить надо, да и свой проект хочется доделать..
Добавлено (15 Марта 2017, 16:44) --------------------------------------------- да- кстати- функцию писал сам (это так - к слову)
Немного подумал для удобства- переделал функцию- теперь можно записывать данные в таблицу практически с любого места листа, т.е. выбирать любую строку и любой столбец - и оттуда начинать запись. При таком подходе можно в любой момент дописывать таблицу эксель (зная где закончена предыдущая запись,- что тоже можно отслеживать) В архиве функция,пример,пример текст.файла и файл эксель(пустой)
mishem, там немного другая тема, разговор о том чтобы подключаться к эксельке с помощью плагина DBPro - ( опять же платный-не для всех)- а тут- запись в эксельку. попробовать конечно можно- у кого это есть. думаю обойтись функциями- пока нерешил эксель или ворд.(ворд мне понятнее-никогда неработал ни с вордом - ни с экселем)
откопал скрипт на просторах инета- к базам подключается- но вот отображение данных непонятно что С ним попробую разобраться В архиве скрипт vbs( для корректировки открыть в блокноте- там комментарии мной подписаны что и где изменить и можно запустить.) тестить надо- возможно данные надо как то по другому записывать,цифровые данные отображает правильно...
Добавлено (16 Марта 2017, 23:18) --------------------------------------------- - а сдругой стороны- запись базы напрямую в эксель и ненужна- всегда можно экспортировать базу в текстовый документ- а затем текстовый с помощью выше выложенной функции записать в эксель....
Добавлено (16 Марта 2017, 23:19) --------------------------------------------- -это практически готовое решение для моей задачи
разговор о том чтобы подключаться к эксельке с помощью плагина
Разговор о том что его можно открывать и корректировать. С помощью плагинов можно экспортировать базу в csv файл, который в последствии так же можно просто импортировать в файл эксель. Что как я предполагаю будет на много быстрее всяких скриптов и циклов.
Добавлено (17 Марта 2017, 00:22) --------------------------------------------- Измени расширение текстового файла на CSV и дважды щелкни по файлу. Если у тебя ексель установлен.
Добавлено (17 Марта 2017, 00:35) --------------------------------------------- В итоге, все что тебе нужно сделать - это отредактировать базу если нужно и экспортировать записи в CSV файл, предварительно указав символ разделитель точку с запятой командой dbfSetImportExportOptions";" ""
Все вы пытаетесь с помощью функций найти черную кошку в темной комнате которой там нет.
говорил же что я с экселем незнаком всё намного проще... хотелось бы такой же простоты в ворде получить(в таблице ворда)
Добавлено (17 Марта 2017, 02:44) --------------------------------------------- Та таблица которую надо залолнить (форма 12 учёта рабочего времени) немного отличается от той что применяется у нас(немного по другому)и следующий вопрос-она написана под формат А3, а мне придётся переписать её под формат А4, с экселем совсем несмогу такое ( ну или сидеть изучать как там таблицы рисуют и тд), с вордом проще- немного знаю и уже переписал эту таблицу на 2 листа формата А4 для распечатки(потом склейка- будет А3) -всё равно нет принтера на А3.) -А скорость..... - да скорость ненужна тут -это не игра DOOM.... Пока выходные данные буду забивать в базы- далее уж решать куда их экспортировать (эксель конечно просто-но сложно перерисовать....)
Добавлено (17 Марта 2017, 02:46) --------------------------------------------- mishem, спасибо за подсказку,возможно воспользуюсь
хотелось бы такой же простоты в ворде получить(в таблице ворда)
Я уже давал подсказку, использовать объект Текст/Текстовый файл > Создать новый документ. Рисуешь нужную таблицу и вставляешь в нужных местах переменные. После печатаешь страницу.
Для каких целей нужен ворд?
Я понятия не имею что такое форма 12 и для чего она нужна.
Если тебе нужна просто таблица в которую нужно вносить данные и после их распечатать, то ты можешь как я выше написал использовать объект Текст/Текстовый файл. Если и файл не обязательно нужно иметь, можешь просто создать эту таблицу из объектов TextEntry на отдельной странице и после их заполнять и также печатать страницу.
Вся твоя задача не понятна.
Мне кажется ты просто циклишься на вордах, экселях, скриптах...
Большинство задач легко выполняются самой НБ, если что то НБ не может, есть куча плагинов. Если и этого недостаточно, есть консольные программы на крайний случай. А скрипты.... Это когда уже вообще безвыходное положение. А ты как мне кажется идешь в обратном направлении. Тоесть начинаешь со скриптов, а нб как бы к ним приложение. Не хочешь читать хелп?
Форма Т12 на листе А3 имеет почти 1000 клеток которые по мере надобности заполня.ются, соответственно на листе А4 их вдвое меньше(около 500).Применение объектов TextEntry просто невозможно- при наличии стольких объектов даже незнаю что и будет(при сотне начинает дико тормозить).Использовать объект Текст/Текстовый файл. - при заполнении сдвигаются надписи(данные)- нужна именно "клетка" для них- иначе расползаются по сторонам. (можно конечно забить знаками которые невидны,по мере занятия места-знаки убирать - но это ещё большая канитель) -без базы тут необойтись..
Цитатаmishem ()
Тоесть начинаешь со скриптов, а нб как бы к ним приложение.
-визуализация скриптов ( просто язык понятен , прост - а к НБ нужны плагины или функции (невсегда бесплатные) но есть визуализация . Вот и совмещаю. К тому же я просто ищу решение своей задачи- рассматриваю разные пути.путей то много-но некоторые непроторённые - или мной нехожены и мне неизвесны) вот как то так..
1 лист формы (А3) расчитан на 7 сотрудников, на каждого сотрудника 185 клеток. В зависимости от того где и как он работает(отдыхает,прогуливает,праздничные или отпуск)заполняются эти клетки
Добавлено (18 Марта 2017, 00:03) --------------------------------------------- у меня примерно расчёт на 40 человек (одно подразделение )
Добавлено (18 Марта 2017, 00:08) --------------------------------------------- Вобщем то основные расчёты уже к концу,осталось "причесать" внешность программы , и далее выбор куда всё это впихнуть с предварительного табеля учёта-там где можно визуально просмотреть и сделать поправки(расчёты соответственно ещё будут небольшие)
Все таки я б наверно воспользовался бы html. Здесь описание как создаются таблицы. И здесь еще.
Создаешь заголовки (если они нужны), шаблон ячеек для одного сотрудника. Подставляешь в этот шаблон нужные переменные и в цикле добавляешь из базы данные.
После полученный результат либо записываешь в файл, либо с помощью команды BrowserLoadFromStr загружаешь в браузер.
Вот тебе пример заполнения таблицы на основе той что выше по ссылке. Полученный файл ты свободно сможешь открывать в ворде и при желании сохранить в нужном формате.
Хороший пример, спасибо.Но возникают небольшие вопросы 1) как записать некоторые оглавление по вертикали (плюс изменение там шрифта-иначе невлезет надпись) 2) таблица не просто как таблица- а как бы расширена- некоторые ячейки объединены-некоторые разделены) 3) при такой таблице что ты выложил в команде кнопки уже длиннющая строка, что будет когда в строку надо записать 50 значений. 4) При пустых значениях(когда в ячейку ничего записывать ненадо) пропадаетсама ячейка,т.е. линии обозначающие её границы. - и это только при беглом осмотре.. Что ж вылезет дальше незнаю, придётся много изучать построение этих таблиц а для небольших (простых)таблиц подойдёт в самый раз.
mishem, мне кажется это усложнение задачи.. можно ж просто писать в готовую расчерченную таблицу
Цитатаmishem ()
Подставляешь в этот шаблон нужные переменные и в цикле добавляешь из базы данные.
Все эти вопросы решаются при желании элементарно, просто немножко нужно почитать.
ЦитатаAS3856 ()
с таблицами HTML
Пардон! Не мое это, конечно, дело, но... так... мысли вслух... "в общем"... Почитал сейчас всю эту "битву". Увы, все сейчас пытаются "программировать" через HTML, когда на нормальном языке программирования любая задача решается намного изящнее, гибче и эффективнее, хоть и поработать ручками придется заметно по-больше... Куда катится программирование?... Скоро все будет на костылях HTML. И даже случается, что формально работает (иногда). Кошмар!
AS3856, эх, Вашу бы энергию "да в мирных целях"!
- А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Есть другое более рациональное предложение? Предложи.
Я говорил "вообще". В данном случае, у меня нет более рационального решения. И нет его не потому-что оно невозможно, а просто потому-что я не занимался им.
mishem, в нормальном языке программирования можно решить ЛЮБУЮ задачу (насколько хватит фантазии), и "проблема" только в одном - надо знать в каком направлении рыть (хотя бы из экономии времени). С точки зрения возможностей (не говоря о скорости работы) при "программировании" на костылях (HTML, JS, и проч.) ты ограничен тем, что предложено (что имеется), и, ни шагу в сторону, хоть убейся, но выше головы не прыгнешь. А в том же Delphi, если нет чего-то в готовом виде, то ничего не мешает сделать это самому! Любую готовую "конструкцию", на любую тему, да и еще не одним способом!
В нормальном языке программирования нет вопросов в духе "можно ли это сделать?", "как это сделать?", вопрос только в том "как лучше это сделать?". Но, все приходит с опытом и знаниями.
Я лишь просто продолжаю свои тщетные (увы) попытки направить "энергию в мирное русло". А ее (энергии) ой, как много!
- А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Немного подумал для удобства- переделал функцию- теперь можно записывать данные в таблицу практически с любого места листа, т.е. выбирать любую строку и любой столбец - и оттуда начинать запись.
А нет у вас случайно примерчика со снятием и установкой обратно защиты на ячейки?
ЦитатаAS3856 ()
4) При пустых значениях(когда в ячейку ничего записывать ненадо) пропадаетсама ячейка,т.е. линии обозначающие её границы.
Цитатаmishem ()
4) Чтобы ячейка не пропадала, должны присутствовать теги <td></td>.
наличие тегов не всегда помогает сохранить отображение линий сетки надежнее так: <td>& nbsp;</td> только пробел убрать между & и nbsp;
Сообщение отредактировано ponand - Вс, 19 Марта 2017, 03:42