M
mail2atulmehta
Hi,
I do not know if this is right place for this, but i need some help. I
have a text file, whose values are seprated by a delimiter. I want to
open this file in excel, ( not import it) . I have written the driver
prg in c#. The code opens the file, but it is not writting the values
from text file into excel file. I can not figure out the problem here.
This is my code:
StreamReader dataFileReader = null;
FileInfo file = null;
Excel.Application ExcelObj = new Excel.Application();
Excel.Workbook workbook = null;
Excel.Range currentCell = null;
Excel.Worksheet worksheet = null;
string txtoutput = null;
Excel.Sheets excelSheets = null;
Excel.Range sampleResults = null;
}
public void transformation()
{
try
{
//GC.Collect();
workbook =
ExcelObj.Workbooks.Add(Excel.XlWBATemplate.xlWBATWorksheet);
excelSheets = workbook.Worksheets;
worksheet =
(Excel.Worksheet)excelSheets.get_Item(1);
if (worksheet == null)
{
Console.WriteLine ("ERROR in
worksheet == null");
}
// Opens the text file.
string inFile ="C:\\dip\\output2.txt";
using (StreamReader reader = new
StreamReader(inFile) )
{
String currentLine;
sampleResults =
worksheet.get_Range("A1", Type.Missing);
int row = 1;
int count = 0;
// Populates the table of
sample results.
// Continues reading lines
until there are no more.
while ((currentLine =
reader.ReadLine()) != null)
{
count++;
Console.WriteLine("Reading string # {0} to populate excel row #
{1}", count, count);
string[] textInfo =
currentLine.Split(',');
// Places each sample
result into the appropriate cell.
for (int i = 0; i <
textInfo.Length; i++)
{
currentCell =
(Excel.Range)sampleResults.Cells[row, i+1];
currentCell.Value2 =
textInfo.Trim();
}
row++;
currentLine =
reader.ReadLine();
}
//thisWorkbook.SaveAs("C://dip//test.xls",Excel.XlFileFormat.xlWorkbookNormal,
null,null,false,false,Excel.XlSaveAsAccessMode.xlShared,false,false,null,null);
workbook.SaveAs("C://dip//test.xls",Excel.XlFileFormat.xlWorkbookNormal,
null,null,false,false,Excel.XlSaveAsAccessMode.xlShared,false,false,null,null);
}
}
catch(Exception ex)
{
//Debug.WriteLine(ex.Message +
ex.StackTrace);
Console.WriteLine("{0}\n{1}",ex.Message,ex.StackTrace);
//Thread.Sleep(3000);
}
finally
{
//excelTW.Close();
//dataFileReader.Close();
//delete files for one time usage
//File.Delete(output2);
//close resources, allocated for the
Excel process
workbook.Close(false, Type.Missing,
Type.Missing);
ExcelObj.Workbooks.Close();
ExcelObj.Quit();
//System.Runtime.InteropServices.Marshal.ReleaseComObject
(currentCell);
//System.Runtime.InteropServices.Marshal.ReleaseComObject
(ExcelObj);
//System.Runtime.InteropServices.Marshal.ReleaseComObject
(worksheet);
//System.Runtime.InteropServices.Marshal.ReleaseComObject
(workbook);
worksheet=null;
workbook=null;
ExcelObj = null;
//try to force GC
GC.Collect();
}
}
I do not know if this is right place for this, but i need some help. I
have a text file, whose values are seprated by a delimiter. I want to
open this file in excel, ( not import it) . I have written the driver
prg in c#. The code opens the file, but it is not writting the values
from text file into excel file. I can not figure out the problem here.
This is my code:
StreamReader dataFileReader = null;
FileInfo file = null;
Excel.Application ExcelObj = new Excel.Application();
Excel.Workbook workbook = null;
Excel.Range currentCell = null;
Excel.Worksheet worksheet = null;
string txtoutput = null;
Excel.Sheets excelSheets = null;
Excel.Range sampleResults = null;
}
public void transformation()
{
try
{
//GC.Collect();
workbook =
ExcelObj.Workbooks.Add(Excel.XlWBATemplate.xlWBATWorksheet);
excelSheets = workbook.Worksheets;
worksheet =
(Excel.Worksheet)excelSheets.get_Item(1);
if (worksheet == null)
{
Console.WriteLine ("ERROR in
worksheet == null");
}
// Opens the text file.
string inFile ="C:\\dip\\output2.txt";
using (StreamReader reader = new
StreamReader(inFile) )
{
String currentLine;
sampleResults =
worksheet.get_Range("A1", Type.Missing);
int row = 1;
int count = 0;
// Populates the table of
sample results.
// Continues reading lines
until there are no more.
while ((currentLine =
reader.ReadLine()) != null)
{
count++;
Console.WriteLine("Reading string # {0} to populate excel row #
{1}", count, count);
string[] textInfo =
currentLine.Split(',');
// Places each sample
result into the appropriate cell.
for (int i = 0; i <
textInfo.Length; i++)
{
currentCell =
(Excel.Range)sampleResults.Cells[row, i+1];
currentCell.Value2 =
textInfo.Trim();
}
row++;
currentLine =
reader.ReadLine();
}
//thisWorkbook.SaveAs("C://dip//test.xls",Excel.XlFileFormat.xlWorkbookNormal,
null,null,false,false,Excel.XlSaveAsAccessMode.xlShared,false,false,null,null);
workbook.SaveAs("C://dip//test.xls",Excel.XlFileFormat.xlWorkbookNormal,
null,null,false,false,Excel.XlSaveAsAccessMode.xlShared,false,false,null,null);
}
}
catch(Exception ex)
{
//Debug.WriteLine(ex.Message +
ex.StackTrace);
Console.WriteLine("{0}\n{1}",ex.Message,ex.StackTrace);
//Thread.Sleep(3000);
}
finally
{
//excelTW.Close();
//dataFileReader.Close();
//delete files for one time usage
//File.Delete(output2);
//close resources, allocated for the
Excel process
workbook.Close(false, Type.Missing,
Type.Missing);
ExcelObj.Workbooks.Close();
ExcelObj.Quit();
//System.Runtime.InteropServices.Marshal.ReleaseComObject
(currentCell);
//System.Runtime.InteropServices.Marshal.ReleaseComObject
(ExcelObj);
//System.Runtime.InteropServices.Marshal.ReleaseComObject
(worksheet);
//System.Runtime.InteropServices.Marshal.ReleaseComObject
(workbook);
worksheet=null;
workbook=null;
ExcelObj = null;
//try to force GC
GC.Collect();
}
}