С Новым годом! Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/15: Рейтинг темы: голосов - 15, средняя оценка - 4.73
0 / 0 / 0
Регистрация: 20.09.2019
Сообщений: 13

Сохранение файла open office calc

20.09.2019, 13:50. Показов 3325. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет! Подскажите, как после занесён я какого то значения в таблицу, сохранить его
Пока что получается записать данные в, как бы сказать, буфер ячейки, при этом приходится вручную открывать файл и сохранять его, иначе это значение не чохранятеся
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.09.2019, 13:50
Ответы с готовыми решениями:

Open Office calc
Подскажите,что нужно сделать, чтобы на листе с таблицей вместо значений отображались формулы? Пробовала Сервис-Параметры-отображать...

Открытие документа Open Office Calc
Плиз, помогите, впервые с ОО работаю из делфи:не получается открыть шаблон *.ods средствами OpenOffice из Делфи. Type TMyOO =...

Использовать макрос (VBA Excel) в Open office либо в Libre office
Можно ли использовать макрос написанный в VBA Excel в программах OpenOffice/LibreOffice? Импортировал макрос но появляется синтаксическая...

16
95 / 74 / 27
Регистрация: 13.08.2018
Сообщений: 203
20.09.2019, 15:08
Artrox, Покажите код.
0
0 / 0 / 0
Регистрация: 20.09.2019
Сообщений: 13
20.09.2019, 21:20  [ТС]
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
private void button3_Click(object sender, EventArgs e)
        {
            int stolb = 0; 
            int stroka = 0;
            string[] mass= new string[999]; 
           
 
            var componentContext = Bootstrap.bootstrap();
            var multiServiceFactory = (XMultiServiceFactory)componentContext.getServiceManager();
            var loader = (XComponentLoader)multiServiceFactory.createInstance("com.sun.star.frame.Desktop");
            XComponent document = null;
            string filePath = @"C:\Users\Дмитрий\Documents\Visual Studio 2012\Projects\WindowsFormsApplication3\WindowsFormsApplication3\123_.ods";
            string url = @"file:///" + filePath.Replace(@"", @"/");
            var openProps = new PropertyValue[1];
            openProps[0] = new PropertyValue { Name = "Hidden", Value = new Any(true) }; //"Hidden"  "Visible"
            document = loader.loadComponentFromURL(url, "_blank", 1, openProps);
 
            XSpreadsheets oSheets = ((XSpreadsheetDocument)document).getSheets();
            unoidl.com.sun.star.container.XIndexAccess oSheetsIA = (unoidl.com.sun.star.container.XIndexAccess)oSheets;
            XSpreadsheet sheet = (XSpreadsheet)oSheetsIA.getByIndex(0).Value;
            unoidl.com.sun.star.table.XCell cell = sheet.getCellByPosition(0, 0);
 
 
 
            for (stroka = 0; stroka < 999; stroka++)
            {
                cell = sheet.getCellByPosition(stolb, stroka);
                string slovo = ((XText)cell).getString();
                mass[stroka] = Convert.ToString(slovo);
                if (slovo == "")
                {
                    break;
                }
            }
            sheet.getCellByPosition(stolb, stroka).setFormula(textBox1.Text);
            document.dispose();
0
95 / 74 / 27
Регистрация: 13.08.2018
Сообщений: 203
21.09.2019, 06:13
Попробуйте использовать AODL.dll , здесь есть пример.
0
0 / 0 / 0
Регистрация: 20.09.2019
Сообщений: 13
21.09.2019, 07:39  [ТС]
остаётся вопрос, где взять dll, полчаса поиска не дали никакого результата
0
95 / 74 / 27
Регистрация: 13.08.2018
Сообщений: 203
21.09.2019, 08:29
Цитата Сообщение от Artrox Посмотреть сообщение
остаётся вопрос, где взять dll, полчаса поиска не дали никакого результата
AODL
0
0 / 0 / 0
Регистрация: 20.09.2019
Сообщений: 13
21.09.2019, 08:44  [ТС]
Там нет ссылки на скачивание, даже написано, что они больше не поддерживают
0
95 / 74 / 27
Регистрация: 13.08.2018
Сообщений: 203
21.09.2019, 08:58
Цитата Сообщение от Artrox Посмотреть сообщение
Там нет ссылки на скачивание, даже написано, что они больше не поддерживают
Оно ставится через менеджер пакетов nuget > Install-Package AODL -Version 1.2.0.1.

Добавлено через 4 минуты
Здесь можно посмотреть простенькие примеры.
0
0 / 0 / 0
Регистрация: 20.09.2019
Сообщений: 13
21.09.2019, 09:08  [ТС]
это нереальный вариант, на рабочем компьютере не могу устанавливать ничего, максимум длл скопировать и вставить, нужен другой вариант(
0
95 / 74 / 27
Регистрация: 13.08.2018
Сообщений: 203
21.09.2019, 09:33
Artrox, Вы visual studio используете ?

Добавлено через 9 минут
Если да , то просто сделайте так.

Открыть
Средства > Диспетчер пакетов Nuget > Консоль диспетчера пакетов
Вставить
Install-Package AODL -Version 1.2.0.1.
Нажать enter

Или

Открыть
Tools > Nuget Package Manager > Package Manager Console
Вставить
Install-Package AODL -Version 1.2.0.1.
Нажать enter
0
95 / 74 / 27
Регистрация: 13.08.2018
Сообщений: 203
21.09.2019, 09:38
В принципе можно и с сайта nuget пакет скачать, та ссылка есть (Download package). Распаковать архиватором и в папке lib будут dll.
Вложения
Тип файла: 7z aodl.1.2.0.1.7z (465.5 Кб, 2 просмотров)
0
0 / 0 / 0
Регистрация: 20.09.2019
Сообщений: 13
21.09.2019, 12:36  [ТС]
Во, круто, спасибо уже закинул, теперь будем познавать эту сборку

Добавлено через 10 минут
эм....но это же получается мне весь код переделывать нужно будет под эту сборку

Добавлено через 59 минут
на сохранение эта штука всё равно не работает, выдаёт что не хватает кучи все, причём я запускал чисто код который в примере

Добавлено через 1 час 11 минут
там целый клубок, у меня построено на фреймворк 3,5, а он просит ICSharpCode.SharpZipLib, которая работает только с 4.0 версии
Так что нужен совсем другой вариант
0
0 / 0 / 0
Регистрация: 20.09.2019
Сообщений: 13
22.09.2019, 09:27  [ТС]
дома ради эксперимента на 4м фреймворке доделал код, из верхнего примера AODL, но проблема в том, что код из примера физически не может почему то поместить текст в ячейку
table.InsertCellAt(0, 0, cell);
он начинает ругаться на второй 0, именно второй, первый отрабатывает хорошо, проверено методом перебора

Добавлено через 43 минуты
Дополнительные сведения: Индекс за пределами диапазона. Индекс должен быть положительным числом, а его размер не должен превышать размер коллекции.
0
95 / 74 / 27
Регистрация: 13.08.2018
Сообщений: 203
22.09.2019, 10:35
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
SpreadsheetDocument doc = new SpreadsheetDocument();
doc.New();
Table table = new Table(doc, "First", "tablefirst");    
for (int i = 0; i < 5; i++)
{
    var row = new Row(table, "Standard");
    table.RowCollection.Add(row);
    for (int j = 0; j < 5; j++)
    {
        Cell cell = table.CreateCell();
        cell.Content.Add(new Paragraph(doc, ParentStyles.Standard, $"{i} : {j}"));
        row.CellCollection.Add(cell);                    
    }
}
doc.TableCollection.Add(table);
doc.SaveTo("formated.ods");
0
0 / 0 / 0
Регистрация: 20.09.2019
Сообщений: 13
23.09.2019, 12:44  [ТС]
В 11 строке ругается на Parentstyle. Standart, как он задавался? Или у вас все сразу в таком виде заработало?
0
95 / 74 / 27
Регистрация: 13.08.2018
Сообщений: 203
23.09.2019, 14:24
Цитата Сообщение от Artrox Посмотреть сообщение
В 11 строке ругается на Parentstyle. Standart, как он задавался? Или у вас все сразу в таком виде заработало?
Может какого пространства имен не хватает просто.
Можно иначе сделать.
C#
1
2
Paragraph paragraph = ParagraphBuilder.CreateSpreadsheetParagraph(doc);
paragraph.TextContent.Add(new SimpleText(doc, $"{i} : {j}"));
0
0 / 0 / 0
Регистрация: 20.09.2019
Сообщений: 13
23.09.2019, 19:05  [ТС]
Это получилось в итоге, спасибо, но уже час мучаюсь над вопросом, а где тут задаются строки и столбцы? Понимаю что i и j, но где конкретно допереть не могу(
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
23.09.2019, 19:05
Помогаю со студенческими работами здесь

Microsoft.Office.Interop.Word сохранение файла
Требуется сохранение файла. Как это сделать? try { _document = _application.Documents.Open(ref fileName,...

Поиск и замена отдельного значения (office calc)
Доброго времени суток, уважаемые форумчане. Столкнулся со следующей бедой: никак не могу понять, как произвести поиск и замену отдельного...

Выделение ячеек в Excel и Libre office calc
Есть список с датами. Как сделать чтобы дата выделялась цветом каждые 3 месяца (если это сегодняшнее число (не год) допустим:

Open Office
Я создаю отчет с попощью с# и Open Office.Нужно ли ставить на машину,где будет выполнятся приложение Open Office?

Open Office
Скажите мне пожалуйста, что за операционная система Open Office, что из себя представляет и как устанавливается?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru