Как сохранить ТаблицуЗначений в файл Excel?

1. 30.05.10 18:15 Сейчас в теме
Есть таблица значений. Нужно ее быстро сохранить в Excel программно.
Как это сделать? Подскажите плиз.
Знаю есть метод Записать ТабличногоДокумента. Но как из ТаблицыЗначений сделать ТабличныйДокумент?
Чую что тупой вопрос, ну вот и программист я такой же :)
По теме из базы знаний
Найденные решения
5. 31.05.10 13:05 Сейчас в теме
Люди тут есть? Или ботаны сплошные.
Ну нет у тебя времени пройди мимо. На кой умником то претворяться?
Были бы у меня эти ЖКК не уж то не глянул.
Hogyoku; simuljakr; dajen; +3 Ответить
2. echo77 1882 30.05.10 22:04 Сейчас в теме
Копируете данные из таблицы значений в табличный документ, потом сохраняете...
kabantus; copperfox; +2 Ответить
17. Yimaida 37 18.05.12 00:15 Сейчас в теме
//Это код для 7.7
//легко переводится для 8.x
//макет на картинке
//==========================================================­============
Процедура ВывестиТЗвТаблицу(ТЗ, Заголовок = "")
	ТЕхел = СоздатьОбъект("Таблица");
	ТЕхел.ИсходнаяТаблица("Ехел");
	ТЗ.ВыбратьСтроки();
	Параметр = "";
	Для ин=1 По ТЗ.КоличествоКолонок() Цикл
			ТЗ.ПолучитьПараметрыКолонки(ин,,,,Параметр,,,);
			Если ин=1 Тогда
				ТЕхел.ВывестиСекцию("Секция_1|Секция_2");
			Иначе
				ТЕхел.ПрисоединитьСекцию("Секция_1|Секция_2");
			КонецЕсли;
	КонецЦикла;
	Пока ТЗ.ПолучитьСтроку() = 1 Цикл
		Для ин=1 По ТЗ.КоличествоКолонок() Цикл
			параметр = ТЗ.ПолучитьЗначение(ТЗ.НомерСтроки, ин);
			Если ин=1 Тогда
				ТЕхел.ВывестиСекцию("Секция_1|Секция_2");
			Иначе
				ТЕхел.ПрисоединитьСекцию("Секция_1|Секция_2");
			КонецЕсли;
		КонецЦикла;
	КонецЦикла;
	ТЕхел.Показать(Заголовок);
КонецПроцедуры // ВывестиТЗвТаблицу
Показать
Прикрепленные файлы:
dvi200707; мх; +2 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. echo77 1882 30.05.10 22:04 Сейчас в теме
Копируете данные из таблицы значений в табличный документ, потом сохраняете...
kabantus; copperfox; +2 Ответить
3. 31.05.10 07:29 Сейчас в теме
echo77 пишет:

Копируете данные из таблицы значений в табличный документ, потом сохраняете...

сразу видно что имеем дело с очень начитанным человеком.
жаль только мозгов нет чтобы умело обрабатывать те знания что напихал в голову.
сложно написать пример команды?
Hogyoku; dajen; +2 Ответить
4. Душелов 4017 31.05.10 12:34 Сейчас в теме
ЖКК в руки.
5. 31.05.10 13:05 Сейчас в теме
Люди тут есть? Или ботаны сплошные.
Ну нет у тебя времени пройди мимо. На кой умником то претворяться?
Были бы у меня эти ЖКК не уж то не глянул.
Hogyoku; simuljakr; dajen; +3 Ответить
6. Душелов 4017 31.05.10 13:20 Сейчас в теме
Методы табличного документа слабо в синтаксис-помощнике посмотреть?
7. 31.05.10 13:38 Сейчас в теме
Даже могу сюда скопировать:
ТабличныйДокумент (SpreadsheetDocument)
Свойства:
АвтоМасштаб (FitToPage)
ВерхнийКолонтитул (Header)
ВстроенныеТаблицы (EmbeddedTables)
Вывод (Output)
ВыделенныеОбласти (SelectedAreas)
ВысотаТаблицы (TableHeight)
Защита (Protection)
ИмяПараметровПечати (PrintParametersName)
ИмяПринтера (PrinterName)
ИмяСохраненияПоложенияОкна (WindowOptionsName)
ИспользуемоеИмяФайла (UsedFileName)
ИтогиСнизу (TotalsBelow)
ИтогиСправа (TotalsRight)
КодЯзыкаМакета (TemplateLanguageCode)
КоличествоЭкземпляров (Copies)
МасштабПечати (PrintScale)
НаправлениеПерехода (StepDirection)
НижнийКолонтитул (Footer)
Области (Areas)
ОбластьПечати (PrintArea)
ОриентацияСтраницы (PageOrientation)
ОтображатьГруппировки (ShowGroups)
ОтображатьЗаголовки (ShowHeaders)
ОтображатьСетку (ShowGrid)
Параметры (Parameters)
ПовторятьПриПечатиКолонки (RepeatOnColumnPrint)
ПовторятьПриПечатиСтроки (RepeatOnRowPrint)
ПолеСверху (TopMargin)
ПолеСлева (LeftMargin)
ПолеСнизу (BottomMargin)
ПолеСправа (RightMargin)
РазборПоКопиям (Collate)
РазмерКолонтитулаСверху (HeaderSize)
РазмерКолонтитулаСнизу (FooterSize)
Рисунки (Drawings)
СохранятьСвойстваОтображения (SaveViewProperties)
ТекущаяОбласть (CurrentArea)
ТолькоПросмотр (ReadOnly)
ФиксацияСверху (FixedTop)
ФиксацияСлева (FixedLeft)
ФиксированныйФон (FixedBackground)
ФоноваяКартинка (BackgroundPicture)
ЦветТекстаГруппировки (GroupTextColor)
ЦветТекстаЗаголовков (HeaderTextColor)
ЦветФонаГруппировки (GroupBackColor)
ЦветФонаЗаголовков (HeaderBackColor)
ЧерноБелаяПечать (BlackAndWhite)
ЧерноБелыйПросмотр (BlackAndWhiteView)
ШиринаТаблицы (TableWidth)
ЭкземпляровНаСтранице (PerPage)

Методы:
ВставитьОбласть (InsertArea)
Вывести (Put)
ВывестиВертикальныйРазделительСтраниц (PutVerticalPageBreak)
ВывестиГоризонтальныйРазделительСтраниц (PutHorizontalPageBreak)
ЗакончитьАвтогруппировкуКолонок (EndColumnAutoGrouping)
ЗакончитьАвтогруппировкуСтрок (EndRowAutoGrouping)
ЗакончитьГруппуКолонок (EndColumnGroup)
ЗакончитьГруппуСтрок (EndRowGroup)
Записать (Write)
КоличествоСтраниц (PageCount)
КоличествоУровнейГруппировокКолонок (ColumnGroupLevelCount)
КоличествоУровнейГруппировокСтрок (RowGroupsLevelCount)
НайтиЗначение (FindValue)
НайтиТекст (FindText)
Напечатать (Print)
НачатьАвтогруппировкуКолонок (StartColumnAutoGrouping)
НачатьАвтогруппировкуСтрок (StartRowAutoGrouping)
НачатьГруппуКолонок (StartColumnGroup)
НачатьГруппуСтрок (StartRowGroup)
Область (Area)
Очистить (Clear)
Показать (Show)
ПоказатьУровеньГруппировокКолонок (ShowColumnGroupLevel)
ПоказатьУровеньГруппировокСтрок (ShowRowGroupsLevel)
ПолучитьОбласть (GetArea)
Присоединить (Join)
ПроверитьВывод (CheckPut)
ПроверитьПрисоединение (CheckAttachment)
Прочитать (Read)
Скрыть (Hide)
УдалитьОбласть (DeleteArea)

Конструкторы:
По умолчанию

Описание:
Используется для доступа к свойствам и методам табличного документа в целом. При помощи этого объекта возможно управление общими характеристиками табличного документа, получение его областей, а также присоединение к табличному документу других табличных документов, группировка строк и колонок табличного документа.
Для табличного документа системой устанавливается язык по умолчанию.
Сериализуется.
Показать

а толку?
нашел метод Записать. он то мне и нужен.
у меня уже есть ТаблицаЗначений. создать ТабличныйДокумент смогу по аналогии с тем кодом что есть в программе.
Но как ТЗ запихнуть в ТД я ХЗ. И в помощнике найти метод не смог. и в Яндексе нашел только ссылку на мисту, где десяток батанов всю страницу усерались над этим вопросом и не один не ответил.
Если вопросы есть, а ответов нет, то есть смысл этот ответ сделать. Даже если он есть в книжках. Любой ответ всегда можно найти. Просто вопрос времени.
Я не программист 1С. просто понимаю как эта штука устроена и иногда под свои задачки дописываю ее. Но вот уперся тут и все. Не могу пройти. Понятно что рано или поздно найду ответ. Или программиста который напишет. Но вот помощь знатоков очень бы сэкономило время. Для того и есть форумы.
Но вместо молчания (если нет времени) или ответа (если время есть) получаешь какие то ссылки и высказывания о том "как это все просто" и "какой глупый вопрос, мне аж на атвечать в падлу".
А потом удивляемся почему обычные люди программистов с трудом переваривают.
8. Душелов 4017 31.05.10 13:40 Сейчас в теме
>А потом удивляемся почему обычные люди программистов с трудом переваривают.

Я еще отвечаю - а поиском воспользоваться религия не позволяет?..
9. pvvpvv 10 31.05.10 13:42 Сейчас в теме
	Таблица = Новый ТаблицаЗначений;
	Таблица.Колонки.Добавить("К1");
	Таблица.Колонки.Добавить("К2");
	Таблица.Колонки.Добавить("К3");
	Строка = Таблица.Добавить();
	Строка.К1 = 7;
	Строка.К2 = 8;
	Строка.К3 = 9;
	Строка = Таблица.Добавить();
	Строка.К1 = 4;
	Строка.К2 = 5;
	Строка.К3 = 6;
	
	ТабДок = Новый ТабличныйДокумент;
	Секция = ТабДок.ПолучитьОбласть("R1");
	
	Для Н=0 По Таблица.Количество()-1 Цикл 
		С= Н+1; 
		Секция.Область("R"+Строка(С)+"C1").Текст = Таблица[Н].К1;
		Секция.Область("R"+Строка(С)+"C2").Текст = Таблица[Н].К2;
		Секция.Область("R"+Строка(С)+"C3").Текст = Таблица[Н].К3;
	КонецЦикла;
	
	ТабДок.Вывести(Секция);
	ТабДок.Записать("C:\MayDoc.xls",ТипФайлаТабличногоДокумента.XLS);
Показать
S_D_M; dedicated; savauu; tolyan_ekb; +4 Ответить
21. An585 14.10.19 02:06 Сейчас в теме
(9)В данном коде есть косяк он работает только до 1000 строк. Нужно "Строка(С)" заменить на "СтрЗаменить(Строка(С),Символы.НПП,"")"
10. Душелов 4017 31.05.10 13:43 Сейчас в теме
Можно и без табличных документов http://infostart.ru/public/19139/
11. 31.05.10 13:43 Сейчас в теме
Душелов пишет:

>А потом удивляемся почему обычные люди программистов с трудом переваривают.



Я еще отвечаю - а поиском воспользоваться религия не позволяет?..

искал. Яндексом. тут искал примеры разработок где сохранение в Excel есть. В XML нашел. В Excel нет. Поиском пользоваться более или менее умею. Просто он не всегда выдает то что нужно тогда когда нужно.
Что сложного дать ссылку на то место где есть пример или просто дать пример кода?
12. 31.05.10 13:46 Сейчас в теме
Владимир Полевик,
А! Красавэц! Спасибо огромное! :idea:
13. 31.05.10 13:52 Сейчас в теме
Душелов пишет:
Можно и без табличных документов http://infostart.ru/public/19139/

А вот это просто в яблочко!
Ну и где скажи мне пожалуйста в ЖКК такая красота написана?

Кстати за отсутствие реакции на мой выпад отдельный респект. Показатель силы и уверенности! Обычный чудик сорвался бы в перепалку ))

P.S. меня тоже раздражают тупые новички, в моей области, но без них никуда, и я либо просто не обращаю внимание, либо молча помогаю если есть время и возможность. но вот издеваться это низко ) все люди.
14. xantimans 03.09.10 11:38 Сейчас в теме
У меня вот появилась задача разобрать ТХТ из Клиент Банка и поместить данные в виде таблицы в EXcel. Получилось так:
Прикрепленные файлы:
txt_to_excel.epf
txt_to_excel_без_ТабДок.epf
jONES1979; +1 Ответить
15. WKBAPKA 214 04.09.10 08:45 Сейчас в теме
а я вот поддержу Душелова. Получается, чукча не писатель, чукча читатель? давайте все мы на форуме будем задавать такие вопросы... у меня, к примеру, есть много не решенных технических вопросов... зачем учиться, читать книжки, буду их задавать на форумах, с требованием предоставления исходного кода :D
22. AleksandrLeshkov 16.08.21 06:35 Сейчас в теме
(15) Иногда можно 20 раз прочитать книжку и ничего не понять, но достаточно, чтобы кто-то объяснил это же, но другим языком и всё сразу становится понятно
16. LeshaP 3 02.12.10 02:06 Сейчас в теме
/////8.* прмерно так можно (набивал прям от сюда, возможны ошибки)
//// ТЗ - это таблица значений
тд = новый табличныйДокумент;
//// дапустим в макете есть область "область" с параметрами пар1 и пар2 (если что его можно создать)
макет = получитьМакет("<егоИмя>");
область = макет.получитьОбласть("область");
для каждого элемент из ТЗ цикл
область.параметры.пар1 = элемент.знач1; ////думаю ясно что есть занч1
область.пара...
конеццикла;
Тд.показать(); //его увидешь, ну а дальше там смотри как
17. Yimaida 37 18.05.12 00:15 Сейчас в теме
//Это код для 7.7
//легко переводится для 8.x
//макет на картинке
//==========================================================­============
Процедура ВывестиТЗвТаблицу(ТЗ, Заголовок = "")
	ТЕхел = СоздатьОбъект("Таблица");
	ТЕхел.ИсходнаяТаблица("Ехел");
	ТЗ.ВыбратьСтроки();
	Параметр = "";
	Для ин=1 По ТЗ.КоличествоКолонок() Цикл
			ТЗ.ПолучитьПараметрыКолонки(ин,,,,Параметр,,,);
			Если ин=1 Тогда
				ТЕхел.ВывестиСекцию("Секция_1|Секция_2");
			Иначе
				ТЕхел.ПрисоединитьСекцию("Секция_1|Секция_2");
			КонецЕсли;
	КонецЦикла;
	Пока ТЗ.ПолучитьСтроку() = 1 Цикл
		Для ин=1 По ТЗ.КоличествоКолонок() Цикл
			параметр = ТЗ.ПолучитьЗначение(ТЗ.НомерСтроки, ин);
			Если ин=1 Тогда
				ТЕхел.ВывестиСекцию("Секция_1|Секция_2");
			Иначе
				ТЕхел.ПрисоединитьСекцию("Секция_1|Секция_2");
			КонецЕсли;
		КонецЦикла;
	КонецЦикла;
	ТЕхел.Показать(Заголовок);
КонецПроцедуры // ВывестиТЗвТаблицу
Показать
Прикрепленные файлы:
dvi200707; мх; +2 Ответить
18. Yimaida 37 18.05.12 01:26 Сейчас в теме
//Для 8.х

//======================================================================
Процедура ВывестиТЗвТаблицу(ТЗ, Заголовок = "")
	ТЕхел = Новый ТабличныйДокумент;
	Макет = ПолучитьМакет("Ехел");
	Область = Макет.ПолучитьОбласть("Секция_1|Секция_2");

	Для ин=0 По ТЗ.Колонки.Количество()-1 Цикл
			Область.Параметры.Параметр = ТЗ.Колонки[ин].Имя;
			Если ин=1 Тогда
				ТЕхел.Вывести(Область);
			Иначе
				ТЕхел.Присоединить(Область);
			КонецЕсли;
	КонецЦикла;
	
	Для каждого Стр Из ТЗ Цикл
		Для ин=0 По ТЗ.Колонки.Количество()-1 Цикл
			Область.Параметры.Параметр = Стр[ин];
			Если ин=1 Тогда
				ТЕхел.Вывести(Область);
			Иначе
				ТЕхел.Присоединить(Область);
			КонецЕсли;
		КонецЦикла;	
	КонецЦикла; 
	
	ТЕхел.Показать(Заголовок);
	имяФайла = ?(ПустаяСтрока(Заголовок), ПолучитьИмяВременногоФайла(), КаталогВременныхФайлов()+"\"+Заголовок+".xls");
    ТЕхел.Записать(имяФайла, ТипФайлаТабличногоДокумента.XLS);
КонецПроцедуры // ВывестиТЗвТаблицу
Показать
ytpyfqrf; maxst22; alexandr_f; luzanas; +4 Ответить
19. drunken 21.10.16 10:28 Сейчас в теме
Попробуй через построитель отчета, например так:

ТабДок = Новый ТабличныйДокумент;
    
    Построитель = Новый ПостроительОтчета();

    Построитель.ИсточникДанных = Новый ОписаниеИсточникаДанных(ТестоваяТаблица);
    Построитель.ВыводитьЗаголовокОтчета = Ложь;
    Построитель.Вывести(ТабДок );

    ИмяФайла = "C:\Users\AbisSoft\Desktop\test.xls";
    
    ТабДок.Записать(ИмяФайла,ТипФайлаТабличногоДокумента.XLS97);
Показать
fancy; Egovigor; RustIG; DoReMu; lgpallladin; IvanKh; Vida; wowik; artemida_it; grfsd; SlavaVNL; Ольга_tmp; tolyan_ekb; yura1111; mypochtolyon; ilyam23; ivanov660; kazann; Seneka7608; alex-l19041; +20 Ответить
20. RSConsulting 166 01.03.17 07:58 Сейчас в теме
Процедура ЗаписатьТаблицуЗначенийВcsv(тз, ИмяФайла, Разделитель=";")
	ФайлCSV = Новый ЗаписьТекста(ИмяФайла, КодировкаТекста.ANSI);
	Для Каждого Колонка Из тз.Колонки Цикл
		Текст = "" + Текст + Колонка.Имя + Разделитель;
	КонецЦикла;
	ФайлCSV.ЗаписатьСтроку(Текст);
	Для Каждого Стр Из тз Цикл
		Текст = "";
		Для Каждого Колонка Из тз.Колонки Цикл
			Значение = Стр[Колонка.Имя];
			Если ТипЗнч(Значение) = Тип("Число") Тогда
				Значение = Формат(Значение,"ЧГ=0");
			КонецЕсли;
			Текст = Текст + Значение + Разделитель;
		КонецЦикла;
		ФайлCSV.ЗаписатьСтроку(Текст);
	КонецЦикла;
	ФайлCSV.Закрыть();
КонецПроцедуры
Показать
EvgeTrofi; +1 Ответить
Внимание! Не забывайте отмечать решение на ваш вопрос, если оно найдено. Это повысит ваш рейтинг на форуме.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот