using System;
using System.Collections;
using System.Reflection;
using System.Windows.Forms;
using Xls = Microsoft.Office.Interop.Excel;
namespace Utility.Graphics
{
///
/// Excel
///
public class Excel
{
public Excel()
{
}
private string bookname="Book1", sheetname="Sheet1",
cell="A1", cellend="B2";
public string NameOfBook
{
get{return bookname;}
set{bookname = value;}
}
public string NameOfSheet
{
get{return sheetname;}
set{sheetname = value;}
}
public string StartingCell
{
get{return cell;}
set{cell = value;}
}
public string EndingCell
{
get{return cellend;}
set{cellend = value;}
}
private Xls.Application objApp;
private Xls.Workbooks objBooks;
private Xls.Workbook objBook;
private Xls.Sheets objSheets;
private Xls.Worksheet objSheet;
private void Access(bool writeQ)
{
objApp = new Xls.Application();
objBooks = objApp.Workbooks;
objBook = objApp.Workbooks.Open
(System.Windows.Forms.Application.StartupPath + "\\"+bookname+".xls",
Type.Missing,Type.Missing,Type.Missing,
Type.Missing,Type.Missing,Type.Missing,
Type.Missing,Type.Missing,Type.Missing,Type.Missing,
Type.Missing,Type.Missing,Type.Missing,Type.Missing);
objSheets = objBook.Worksheets;
int findsheet = 0;
for(int k = 0; k < objSheets.Count; k++)
{
objSheet = (Xls.Worksheet)objSheets.get_Item(k+1);
if(objSheet.Name == sheetname) findsheet = k+1;
}
if(findsheet==0)
{
if(writeQ)
{
objSheet = (Xls.Worksheet)objSheets.Add( Missing.Value,Missing.Value,
Missing.Value, Missing.Value);
objSheet.Name = sheetname;
}
else
{
try{throw new Exception();}
catch (Exception)
{
MessageBox.Show("No sheet! Check the name of sheet.",
"Invalid method",MessageBoxButtons.OK, MessageBoxIcon.Error );
}
}
}
else objSheet = (Xls.Worksheet)objSheets.get_Item(findsheet);
}
public void Write(double[,] obj)
{
Access(true);
Xls.Range range;
range = objSheet.get_Range(cell, Missing.Value);
range = range.get_Resize(obj.GetLength(0),obj.GetLength(1));
range.set_Value(Missing.Value, obj);
objBook.Save();
// objApp.Visible = true;
// objApp.UserControl = true;
objApp.Quit();
}
public void Write(ArrayList[] als)
{
Access(true);
Xls.Range range;
range = objSheet.get_Range(cell, Missing.Value);
range = range.get_Resize(als[0].Count, als.Length);
Object[,] obj = new Object[als[0].Count, als.Length];
for(int i = 0; i