2014-08-28 2 views
1

У меня есть несколько тестов, которые запускаются три раза, и среднее значение вычисляется с помощью кода C#. Я могу написать три тестовых раза, а среднее значение - для файла xls, если оно создано до в нижнем формате изображения xls file format. Но теперь я каждый час каждый час запускаю каждый тест через командный файл с помощью планировщика окон. Я хочу создать файл xls динамически в каждый час в нижеуказанном формате с определенным именем, чтобы на первой итерации создавался файл и для следующей 19-й итерации он должен был писать в том же файле, а затем в следующий час новый файл, созданный с определенным name.How, чтобы создать и написать файл excel динамически ????? Если есть какая-либо другая простая процедура, предложите это. Код, который я использую, чтобы писать в уже созданный файл XLS является: `/ *Как создать и написать файл Excel .xls с помощью C#

using System; 
using System.IO; 
using Ranorex; 

namespace PEPI_Performance.Utility 
{ 
/// <summary> 
/// Description of ExcelWriter. 
/// </summary> 

public class ExcelWriter 
{ 
    /// <summary> 
    /// Constructs a new instance. 
    /// </summary> 
    public ExcelWriter() 
    { 
     // Do not delete - a parameterless constructor is required! 
    } 


    public void Driver(int row , int col, string time, string sheetName){ 

     string sDataFile = "Ranorex_Reports.xls"; 
     string sFilePath = Path.GetFullPath(sDataFile); 

     string sOldvalue = "Automation\\bin\\Debug\\" + sDataFile; 
     sFilePath = sFilePath.Replace(sOldvalue,"")+ 
"PEPI_Performance\\ExecutionReport\\" + sDataFile; 
     fnOpenExcel(sFilePath,sheetName); 
     writeExcel(row,col,time); 
     fnCloseExcel(); 
    } 
    Excel.Application exlApp ; 
    Excel.Workbook exlWB ; 
    Excel.Sheets excelSheets ; 
    Excel.Worksheet exlWS; 
    //Open Excel file 
    public int fnOpenExcel(string sPath, string iSheet){ 

     int functionReturnValue = 0; 
     try { 

      exlApp = new Excel.ApplicationClass(); 
      exlApp.Visible = true; 
    exlWB= 
    exlApp.Workbooks.Open(sPath,Type.Missing,Type.Missing, 
    Type.Missing,Type.Missing,Type.Missing,Type.Missing, 
Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing); 

      // get all sheets in workbook 
      excelSheets = exlWB.Worksheets; 

      // get some sheet 
      //string currentSheet = "Cycle1"; 
      exlWS = (Excel.Worksheet)excelSheets.get_Item(iSheet); 
      functionReturnValue = 0; 
     } 
     catch (Exception ex) { 
      functionReturnValue = -1; 
      Report.Error(ex.Message); 
     } 
     return functionReturnValue; 
    } 


    // Close the excel file and release objects. 
    public int fnCloseExcel(){ 
     //exlWB.Close(); 

     try{ 
      exlApp.ActiveWorkbook.Save(); 
      exlApp.Quit(); 

      System.Runtime.InteropServices.Marshal.ReleaseComObject(exlWS); 
      System.Runtime.InteropServices.Marshal.ReleaseComObject(exlWB); 
      System.Runtime.InteropServices.Marshal.ReleaseComObject(exlApp); 

      GC.GetTotalMemory(false); 
      GC.Collect(); 
      GC.WaitForPendingFinalizers(); 
      GC.Collect(); 
      GC.GetTotalMemory(true); 
     }catch(Exception ex){ 
      Report.Error(ex.Message); 
     } 
     return 0; 
    } 

    public void writeExcel(int i, int j , string time){ 
     Excel.Range exlRange = null; 
     exlRange = (Excel.Range)exlWS.UsedRange; 
     ((Excel.Range)exlRange.Cells[i,j]).Formula = time; 

    } 

    } 
} 

`

+0

Возникает вопрос, как сгенерировать имя файла с датой и временем в нем? – CodeCaster

+0

как создать файл excel и что имя файла excel может быть с датой и временем. Внутри я хочу писать как прикрепленную картинку. @CodeCaster – Mudit

+0

Какие это модульные тесты? Visual Studio? NUnit? –

ответ

0

Существует способ справиться с этим с помощью сетки данных.

В приведенном ниже примере представлен DataSet (вы можете передать список или таблицу).

Затем на FLY создается и экспортируется GridView в Excel. Я использую этот метод на многих сайтах.

public static void ExportDataSetToExcel(DataSet ds, string filename) 
{ 
    try 
    { 
     HttpResponse response = HttpContext.Current.Response; 

     // first let's clean up the response.object 
     response.Clear(); 
     response.Charset = ""; 

     // set the response mime type for excel 
     response.ContentType = "application/vnd.ms-excel"; 
     response.AddHeader("Content-Disposition", "attachment;filename=\"" + filename + "\""); 

     // create a string writer 
     using (StringWriter sw = new StringWriter()) 
     { 
      using (HtmlTextWriter htw = new HtmlTextWriter(sw)) 
      { 
       // instantiate a datagrid 
       DataGrid dg = new DataGrid(); 
       dg.DataSource = ds; 
       dg.DataBind(); 
       dg.RenderControl(htw); 
       response.Write(sw.ToString()); 
       response.End(); 
      } 
     } 
    } 
    catch { } 
} 
+0

Сэр, я должен написать код для тестирования автоматизации с помощью инструмента автоматизации Ranorex. – Mudit

+0

@SRUFThru - это хороший трюк. Я должен это вспомнить. – PhillipH

+0

Мудит, я не понимаю. Похоже, вы пишете собственный код, не уверен, что ваша точка на Ranorex (никогда не слышала об этом) –

0

Честно говоря, вы можете быть лучше использовать файл CSV, что путь от ваших тестов Ranorex вы можете просто использовать System.IO.File записать выходной текст в файл, и хорошая вещь о csv формат можно открыть в excel

Смежные вопросы