Click here to Skip to main content
15,892,059 members
Home / Discussions / C#
   

C#

 
GeneralRe: Is there a better way to call Same Methods on different objects ? Pin
Eddy Vluggen23-Dec-15 6:34
professionalEddy Vluggen23-Dec-15 6:34 
GeneralRe: Is there a better way to call Same Methods on different objects ? Pin
BillWoodruff23-Dec-15 19:44
professionalBillWoodruff23-Dec-15 19:44 
GeneralRe: Is there a better way to call Same Methods on different objects ? Pin
Eddy Vluggen24-Dec-15 1:30
professionalEddy Vluggen24-Dec-15 1:30 
GeneralRe: Is there a better way to call Same Methods on different objects ? Pin
Emanuele Bonin24-Dec-15 9:51
Emanuele Bonin24-Dec-15 9:51 
GeneralRe: Is there a better way to call Same Methods on different objects ? Pin
Emanuele Bonin24-Dec-15 9:58
Emanuele Bonin24-Dec-15 9:58 
GeneralRe: Is there a better way to call Same Methods on different objects ? Pin
Emanuele Bonin24-Dec-15 9:55
Emanuele Bonin24-Dec-15 9:55 
AnswerRe: Is there a better way to call Same Methods on different objects ? Pin
Gerry Schmitz24-Dec-15 8:11
mveGerry Schmitz24-Dec-15 8:11 
GeneralRe: Is there a better way to call Same Methods on different objects ? Pin
Emanuele Bonin26-Dec-15 5:28
Emanuele Bonin26-Dec-15 5:28 
Thanx
this is my second version of this incomplete but runnable piece of code:
public class NPOIWrapper {

    enum XLSType {XLS, XLSX}

    public string FileName { get; set;}
    private int _CurrentSheetIndex = 0;
    public int CurrentSheetIndex { get {return _CurrentSheetIndex; } set {_CurrentSheetIndex = value; } }

    public NPOIWrapper() { }
    public NPOIWrapper(string cFileName) {
        this.FileName = cFileName;
        ReadXLS();
    }

    private string[] _Sheet;
    public string[] Sheet {get { return _Sheet;} }

    private int _SheetCount = 0;
    public int SheetCount {get { return _SheetCount;} }

    XLSType xlsType;

    object wb;
    ISheet[]        sh;


    public bool ReadXLS(string XLSFileName = "") {
        bool Ret = true;
        string XLSName, Extension;
        StringBuilder Sheets = new StringBuilder();

        FileStream fs;
        XLSName = String.IsNullOrEmpty(XLSFileName)?this.FileName:XLSFileName;
        Extension = Path.GetExtension(XLSName).Substring(1).ToUpper();
        switch (Extension) {
            case "XLS":
                xlsType = XLSType.XLS;
                break;
            case "XLSX":
                xlsType = XLSType.XLSX;
                break;
            default:
                Ret = false;
                break;
        }
        if(Ret) {
            fs = new FileStream(XLSName, FileMode.Open, FileAccess.Read);
            if (fs==null) Ret = false;
            else {
                Type t = xlsType==XLSType.XLS?typeof(HSSFWorkbook):typeof(XSSFWorkbook);
                try {
                    wb = Activator.CreateInstance(t,  new object[] {fs});
                } catch (Exception ex) { MessageBox.Show("Problemi nella lettura del foglio\n" + ex.Message);}
                if (wb != null) {
                    _SheetCount = ((IWorkbook)wb).Count;
                    sh = new ISheet[_SheetCount];
                    for (int i = 0; i < _SheetCount; i++) {
                        sh[i] = ((IWorkbook)wb).GetSheetAt(i);
                        Sheets.Append("\n" + sh[i].SheetName);
                    }
                    this._Sheet = Sheets.ToString().Substring(1).Split('\n');
                }
                fs.Close();
            }
        }
        return Ret;
    }
    public ICell GetCell(int Row, int Col) {
        ICell Ret;
        Ret = GetCell(Row, Col, this.CurrentSheetIndex);
        return Ret;
    }

    public ICell GetCell(int Row, int Col, int Sheet) {
        ICell Ret;
        Ret = sh[Sheet].GetRow(Row).GetCell(Col);
        return Ret;
    }

    public String GetCellValue(int Row, int Col) {
        String Ret;
        Ret = GetCellValue(Row, Col, this.CurrentSheetIndex);
        return Ret;
    }

    public string GetCellValue(int Row, int Col, int Sheet) {
        string Ret;
        Ret = sh[Sheet].GetRow(Row).GetCell(Col).ToString();
        return Ret;
    }

    public IRow GetRow(int Row, int Sheet) {
        IRow Ret;
        Ret = sh[Sheet].GetRow(Row);
        return Ret;
    }

    public IRow GetRow(int Row) {
        IRow Ret;
        Ret = GetRow(Row, CurrentSheetIndex);
        return Ret;
    }
}

GeneralRe: Is there a better way to call Same Methods on different objects ? Pin
Gerry Schmitz26-Dec-15 7:43
mveGerry Schmitz26-Dec-15 7:43 
GeneralRe: Is there a better way to call Same Methods on different objects ? Pin
Emanuele Bonin26-Dec-15 8:40
Emanuele Bonin26-Dec-15 8:40 
GeneralRe: Is there a better way to call Same Methods on different objects ? Pin
Gerry Schmitz26-Dec-15 16:16
mveGerry Schmitz26-Dec-15 16:16 
QuestionFill DataGrid ODBC Postgres Pin
Andre Dieme22-Dec-15 23:04
Andre Dieme22-Dec-15 23:04 
AnswerRe: Fill DataGrid ODBC Postgres Pin
Eddy Vluggen23-Dec-15 1:51
professionalEddy Vluggen23-Dec-15 1:51 
AnswerRe: Fill DataGrid ODBC Postgres Pin
Mycroft Holmes23-Dec-15 11:53
professionalMycroft Holmes23-Dec-15 11:53 
GeneralRe: Fill DataGrid ODBC Postgres Pin
Andre Dieme25-Dec-15 10:31
Andre Dieme25-Dec-15 10:31 
QuestionWhy i can't change my startup Form in VS2013. Pin
Kashaf Murtaza22-Dec-15 22:18
Kashaf Murtaza22-Dec-15 22:18 
AnswerRe: Why i can't change my startup Form in VS2013. Pin
Pete O'Hanlon22-Dec-15 23:35
mvePete O'Hanlon22-Dec-15 23:35 
AnswerRe: Why i can't change my startup Form in VS2013. Pin
OriginalGriff22-Dec-15 23:37
mveOriginalGriff22-Dec-15 23:37 
AnswerRe: Why i can't change my startup Form in VS2013. Pin
John Torjo28-Dec-15 0:14
professionalJohn Torjo28-Dec-15 0:14 
Questioncompression Pin
jackie.398121-Dec-15 9:18
jackie.398121-Dec-15 9:18 
AnswerRe: compression Pin
Kevin Marois21-Dec-15 9:28
professionalKevin Marois21-Dec-15 9:28 
GeneralRe: compression Pin
jackie.398121-Dec-15 9:31
jackie.398121-Dec-15 9:31 
GeneralRe: compression Pin
Richard Andrew x6421-Dec-15 10:26
professionalRichard Andrew x6421-Dec-15 10:26 
AnswerRe: compression Pin
Dave Kreskowiak21-Dec-15 11:05
mveDave Kreskowiak21-Dec-15 11:05 
GeneralRe: compression Pin
jackie.398121-Dec-15 11:09
jackie.398121-Dec-15 11:09 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.