0 / 0 / 0
Регистрация: 02.06.2015
Сообщений: 20

Странная ошибка при работе с Excel

09.06.2017, 06:01. Показов 1881. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В общем, имеется такая процедура конвертации XLS в CSV (даже не спрашивайте, зачем мне это нужно):
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
procedure TForm2.Button2Click(Sender: TObject);
 
var
xls, xlw: Variant;
begin
xls:= CreateOleObject('Excel.Application');
xls.DisplayAlerts:= False;
xlw:= xls.WorkBooks.Open('D:/users');
xlw.SaveAs('D:/users', xlCSV);
xlw.Close;
xlw:= UnAssigned;
xls.Quit;
xls:= UnAssigned;
end;
Вот только по нажатию кнопки возникает очень странная ошибка, которую я прикрепил во вложения.
Да, папка имеется и доступна для записи, знаков нет, путь к файлу никак не превышает 218 знаков.
В чем вообще проблема? Гугл толком не помог.
Миниатюры
Странная ошибка при работе с Excel  
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.06.2017, 06:01
Ответы с готовыми решениями:

Чат на WinSocket. Очень странная ошибка при работе
Привет всем. Дело тут такое. Я до этого месяца три назад пробовал и делал чат через WinSocket, но вот сейчас проблема. Использую идентичный...

Странная ошибка при работе с Excel
Пытаюсь создать Excel файл и записать в него ячейки но при компиляции программы получаю совершенно не понятную мне ошибку int i; ...

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

8
 Аватар для Zombi_sib
379 / 332 / 89
Регистрация: 26.05.2010
Сообщений: 750
09.06.2017, 06:29
для начала слеш в пути поменяй на обратный D:\папка

Добавлено через 12 минут
а где в пути имя файла
0
0 / 0 / 0
Регистрация: 02.06.2015
Сообщений: 20
09.06.2017, 06:41  [ТС]
Да, слеш неправильно сюда скопировал. Так "D:\users" это и есть путь к файлу.
В общем, создал новую папку, закинул туда нужный файл, поменял путь в коде и все заработало. В чем проблема была я так и не понял. Исправить ошибку на другой машине этим же способом не получается, очень странно.
0
 Аватар для Zombi_sib
379 / 332 / 89
Регистрация: 26.05.2010
Сообщений: 750
09.06.2017, 06:51
Можешь скинуть сюда проект, могу погонять на своей машине
0
 Аватар для Пытливый
3763 / 2267 / 705
Регистрация: 29.05.2013
Сообщений: 9,617
09.06.2017, 11:53
Если у вас операционка установлена на D: то вполне ожидаемо, ибо папка D:\Users - системная папка в этом случае.
0
500 / 346 / 200
Регистрация: 20.10.2016
Сообщений: 1,101
09.06.2017, 12:17
Лучший ответ Сообщение было отмечено SuperSanchous как решение

Решение

SuperSanchous, накой у вас там две вариантных переменных? Делается так:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
const
  xlCSV = $00000006;
var
  xls: Variant;
begin
  xls := CreateOleObject('Excel.Application');
  xls.DisplayAlerts := False;
  xls.WorkBooks.Open('D:\users');
  xls.ActiveWorkBook.SaveAs('D:\users', xlCSV);
  xls.Quit;
  xls := UnAssigned;
end;
Пытливый, в данном случае users это файл, а не папка, тут расширение указывать не обязательно.
1
694 / 6293 / 265
Регистрация: 11.08.2016
Сообщений: 3,698
09.06.2017, 15:04
А файл так и называется, users? Без расширения?
0
500 / 346 / 200
Регистрация: 20.10.2016
Сообщений: 1,101
09.06.2017, 15:12
Цитата Сообщение от Ivandur Посмотреть сообщение
А файл так и называется, users? Без расширения?
Называется users но с расширением, сами проверьте, это работает, Excel не проверяет расширение, он проверяет структуру данных файла и если он может с ней работать то открывает.
Лично я указал бы для ясности это расширение, как минимум для читабельности кода, как максимум для точности указания файла (в папке может быть несколько файлов Excel с разными расширениями, но с одинаковыми именами), но как видится у ТС свои мыли на этот счет.
0
0 / 0 / 0
Регистрация: 02.06.2015
Сообщений: 20
10.06.2017, 04:43  [ТС]
Хм, спасибо, потом попробую ваш вариант.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.06.2017, 04:43
Помогаю со студенческими работами здесь

Ошибка при работе с Excel
Программа взаимодействует с экселем. Если я правильно понял, у меня не подключена какая-то библиотека, потому что данный проект работал,...

Ошибка при работе с Excel
ошибка Добавлено через 27 секунд private void button3_Click_1(object sender, RoutedEventArgs e) { excelapp...

Ошибка при работе с Excel
Определяю количество занятых ячеек (ячеек с информацией) в столбце файл-Excel, точнее номер последнего занятого столбца. При выполнении...

Ошибка при работе с excel
Нужно прочитать значение из ячейки. Например 1,1 (A1). Возникает ошибка -------------- Исключение из HRESULT: 0x800A03EC ...

Ошибка при работе с Excel файлом
В модели расположен эксель файл с именем GIS и функция которая должна с ним работать. В ней следующий код: GIS.readFile(); y=0; o=0; ...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

Новые блоги и статьи
Оптимизация производительности Express.js бэкенда
Reangularity 24.05.2025
Express. js заслуженно остаётся одним из самых популярных инструментов для создания бэкенда, но даже он не застрахован от проблем с производительностью. Многие разработчики сталкиваются с ситуацией,. . .
Продвинутая обработка данных с LINQ в C#
stackOverflow 24.05.2025
LINQ (Language Integrated Query) — это фундаментальное изменение парадигмы работы с данными в C#. Простые запросы Where и Select знакомы любому разработчику, но настоящая мощь LINQ раскрывается в. . .
Инфраструктура PKI и сертификатов безопасности
Mr. Docker 24.05.2025
PKI (Public Key Infrastructure) — это невидимый фундамент цифрового доверия, без которого современный интернет просто рассыпался бы как карточный домик. За этой аббревиатурой скрывается целый. . .
Аутентификация OAuth в Python
py-thonny 23.05.2025
OAuth (Open Authorization) — это целый стандарт для делегированного доступа. Звучит занудно? Давайте проще: OAuth позволяет приложениям получать доступ к информации пользователя на сторонних сервисах. . .
Хеширование и соль паролей в веб-приложениях C#
stackOverflow 23.05.2025
Когда-то в начале своей карьеры я тоже грешил простейшими подходами к хранению паролей – MD5-хеширование казалось верхом защиты. Но технологии не стоят на месте, вычислительные мощьности растут, и. . .
Генераторы Python для эффективной обработки данных
AI_Generated 21.05.2025
В Python существует инструмент настолько мощный и в то же время недооценённый, что я часто сравниваю его с тайным оружием в арсенале программиста. Речь идёт о генераторах — одной из самых элегантных. . .
Чем заменить Swagger в .NET WebAPI
stackOverflow 21.05.2025
Если вы создавали Web API на . NET в последние несколько лет, то наверняка сталкивались с зелёным интерфейсом Swagger UI. Этот инструмент стал практически стандартом для документирования и. . .
Использование Linq2Db в проектах C# .NET
UnmanagedCoder 21.05.2025
Среди множества претендентов на корону "идеального ORM" особое место занимает Linq2Db — микро-ORM, балансирующий между мощью полноценных инструментов и легковесностью ручного написания SQL. Что. . .
Реализация Domain-Driven Design с Java
Javaican 20.05.2025
DDD — это настоящий спасательный круг для проектов со сложной бизнес-логикой. Подход, предложенный Эриком Эвансом, позволяет создавать элегантные решения, которые точно отражают реальную предметную. . .
Возможности и нововведения C# 14
stackOverflow 20.05.2025
Выход версии C# 14, который ожидается вместе с . NET 10, приносит ряд интересных нововведений, действительно упрощающих жизнь разработчиков. Вы уже хотите опробовать эти новшества? Не проблема! Просто. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru