Как файл .xls Save As .txt?
#1
Отправлено 31 июля 2011 - 08:24
Моя тестируемая система выводит отчет только в формате .xls. Мне необходимо для дальнейшей работы превратить его в формат .txt.
Как это сделать средствами TestComplete?
#2
Отправлено 31 июля 2011 - 08:40
Посмотрите вот тут: Data Driven Testing. Там есть примеры чтения xls файлов.Подскажите, пожалуйста, как файл в формате .xls переписать в формат .txt.
Моя тестируемая система выводит отчет только в формате .xls. Мне необходимо для дальнейшей работы превратить его в формат .txt.
Как это сделать средствами TestComplete?
А отдельной функции для конвертирования, боюсь вы не найдете. Надо будет писать самому.
#3
Отправлено 31 июля 2011 - 16:09
#4
Отправлено 31 июля 2011 - 18:58
tab15, совершенно прав. Проще сохранить в csv. Хотя нет никакого труда сохранить в ЛЮБОМ нужном Вам формате. Для этого нужно обратится к Excel как COM_объектуМожет просто сохранить в csv формате?
// Excel - сохранить как----------------------------------------------------------------------------
// тип файла, если 1 - в формате "xls"
// 6 - в формате "csv"
function SaveAs(aFileName : String; aFileType : Integer = 1) : boolean;
var
vMsExcel : OleVariant;
begin
_FileDelete(aFileName);
vMsExcel := _OleObjectCreate();
// сохраянем книгу
vMsExcel.Workbooks.Item[1].SaveAs(aFileName, aFileType);
vMsExcel.Quit();
vMsExcel := nil;
// убиваем процесс
while Sys.WaitProcess('EXCEL').Exists do
Sys.Process('EXCEL').Terminate();
// проверяем, существует ли сохраняемый файл; это и будет проверкой, что данная функция отработала нормально
result := _FileExists(aFileName);
end;или
// Excel - сохранить как...
// тип файла, если 1 - в формате xls, 6 - в csv
function ExcelSaveAs(aFileName : String; aFileType : Integer = 1) : boolean;
var
vMsExcel : OleVAriant;
p1 : OleVAriant;
begin
if aqFile.Exists(aFileName) then
aqFile.Delete(aFileName);
Delay(2000);
// ожидание открытия окна MSExcel
p1 := Sys.WaitProcess('EXCEL', 120000, -1);
Delay(2000); // тут уж ничего неподелаешь ... непонятные тормоза независящие от процесса
if not (p1.Window('XLMAIN', '*').Window('XLDESK').WaitWindow('EXCEL7', '*', 1, 120000).Exists) then
begin
Log.Error('Окно Excel не открылось. Тест продолжен не будет');
if Sys.WaitProcess('EXCEL').Exists then
p1.Terminate();
CloseProcess;
Runner.Stop(true);
end;
p1.Window('XLMAIN', '*').Minimize();
Delay(5000);
vMsExcel := Sys.OleObject('Excel.Application');
vMsExcel.DisplayAlerts := False;
vMsExcel.Workbooks.Item[1].SaveAs(aFileName, aFileType);
vMsExcel.Displayalerts := 0; // типа отключить встроенные предупреждения Excel'я
vMsExcel.Quit();
vMsExcel := nil;
while Sys.WaitProcess('EXCEL').Exists do
Sys.Process('EXCEL').Terminate();
if aqFile.Exists(aFileName) then
begin
Log.Message('Файл: ' + aFileName + ' - успешно сохранен.');
result := true
end else
begin
Log.Error('Файл: ' + aFileName + ' - не сохранен.');
result := false;
end;
end;
#5
Отправлено 02 августа 2011 - 17:34
#6
Отправлено 02 августа 2011 - 18:48
Эдуард, как Вы могли такое подумать!Никому не интересно? Или банальные вещи?
Просто на форумах не всегда полезный пост сопровождается положенными благодарностями.
Может топик-стартер уже сам решил проблему. Может просто занят и не заходит на форум. Может ещё почему.
Так что я за всех скажу -- muchas gracias!
Побольше бы таких "банальных" ответов, подробно и по существу.
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium
#7
Отправлено 03 августа 2011 - 15:06
Спасибо, Алексей. Вы не правильно меня поняли :). Я, конечно, не жду благодарности. Ну право слово, все мы бываем воспрошающими и бываем отвечающими. Я интересовался, решена ли проблема? Предложенные варианты удовлетворили топикстартера.Просто на форумах не всегда полезный пост сопровождается положенными благодарностями.
Так что я за всех скажу -- muchas gracias!
Побольше бы таких "банальных" ответов, подробно и по существу.
Но все равно, приятно получить "muchas gracias" :)
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных

