uses
ComObj;
function ExcelSaveAsText(ExcelFile, TextFile: TFileName): Boolean;
const
xlText = -4158;
var
ExcelApp: OleVariant;
vTemp1, vTemp2, vTemp3: OLEVariant;
begin
Result := False;
try
ExcelApp := CreateOleObject('Excel.Application');
except// Fehler beim цffnen von Excel... // Error occured...
Exit;
end;
try
ExcelApp.Workbooks.Open(ExcelFile);
ExcelApp.DisplayAlerts := False;
vTemp3 := False;
vTemp2 := xlText;
vTemp1 := TextFile;
ExcelApp.ActiveWorkbook.SaveAs(vTemp1, vTemp2, vTemp3);
Result := True;
finally
ExcelApp.Quit;
ExcelApp := Unassigned;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ExcelSaveAsText('C:\YouExcelFile.xls','C:\YourTextFile.txt');
end;
Перевод контента на русский язык:
Код, предоставленный ниже, это программный проект Delphi, который использует интерфейс COM (Component Object Model) для взаимодействия с Microsoft Excel и сохранения файла Excel в виде текстового файла.
Вот шаг за шагом, как работает код:
Функция ExcelSaveAsText принимает два параметра: ExcelFile, которое является путем к файлу Excel, и TextFile, которое является путём к текстовому файлу, который будет создан.
Создается экземпляр приложения Excel с помощью функции CreateOleObject.
Открывается указанный файл Excel с помощью метода Workbooks.Open.
Устанавливается свойство DisplayAlerts в значение False, чтобы предотвратить появление любых запросов во время операции сохранения.
Создаются три переменные OLEVariant: vTemp1, vTemp2 и vTemp3. Первые два присваиваются значениями, которые будут использоваться как параметры для метода SaveAs. Третья устанавливается в значение False.
Вызывается метод SaveAs на активном рабочем документе, передавая в него путь к текстовому файлу, формат файла (в этом случае, Excel 97-2003 .xls) и переменную vTemp3.
Если операция сохранения успешна, устанавливается свойство Result в значение True.
Наконец, приложение Excel закрывается с помощью метода Quit, а объект ExcelApp отменяется.
Процедура Button1Click просто вызывает функцию ExcelSaveAsText с указанными путями к файлам.
Вот некоторые предложения по улучшению кода:
Обработка ошибок: Код сейчас выходит, если возникает ошибка при создании приложения Excel. Возможно, вам стоит рассмотреть более robust обработку ошибок, например, логирование ошибок или отображение сообщения пользователю.
Проверка пути к файлу: Вы должны проверить пути к файлам, переданным в функцию, чтобы убедиться, что они являются валидными и существуют на диске.
Варианты формата файла: Код сейчас использует константу xlText для указания формата файла. Возможно, вам стоит рассмотреть добавление дополнительных вариантов для различных форматов файлов (например, CSV, XML).
Организация кода: Код довольно компактен, но может быть полезно разделить логику, связанную с Excel, в отдельном модуле или классе, чтобы сделать код более легко поддерживаемым и повторно используемым.
Вот альтернативное решение, использующее компонент TExcelFile из единицы Vcl.Controls:
Код создает экземпляр компонента TExcelFile и вызывает метод SaveAsText, чтобы сохранить файл Excel в виде текстового файла. Этот подход более прост и требует меньше кода, чем оригинальное решение.
Программа на Delphi, написанная в Pascal, позволяет сохранять файлы Microsoft Excel в текстовом формате, используя API-интерфейс COM для взаимодействия с приложением Excel.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.