Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Класс для работы с EXCEL 
V
    Опции темы
VisMaster
Дата 29.11.2007, 22:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 147
Регистрация: 16.3.2007
Где: СПб

Репутация: нет
Всего: нет



У самого возникла проблема с совместимостью 2003 и 2007 EXCEL, решение в позднем связывании.

Вот класс взятый от сюда , я его немного дописал, выкладываю вдруг кому нибудь пригодиться....

Код

namespace Excel
{

    /// <summary>
    /// Summary description for XlInsertShiftDirection
    /// </summary>
    public class XlBorderWeight
    {
        public const int xlMPun = 1;//мелкий пунктир
        public const int xlThin = 2;//сплошная
        public const int xlRPun = 3;//разреженный пунктир
        public const int xlLTL = 4;// -.-.-
        public const int xlLTTL = 5;//-..-..-
    }

    /// <summary>
    /// Summary description for XlInsertShiftDirection
    /// </summary>
    public class XlBordersStyle
    {
        public const int xlEdgeLeft = 7;
        public const int xlEdgeTop = 8;
        public const int xlEdgeBottom = 9;
        public const int xlEdgeRight = 10;
    }

    /// <summary>
    /// Summary description for XlInsertShiftDirection
    /// </summary>
    public class XlLineStyle
    {
        public const int xlContinuous = 1;
        public const int xlNone = -4142;
    }

    /// <summary>
    /// Summary description for XlInsertShiftDirection
    /// </summary>
    public class XlInsertShiftDirection
    {
        public const int xlShiftDown = -4121;
        public const int xlToRight = -4161;

    }

    /// <summary>
    /// Summary description for Constants
    /// </summary>
    public class Constants
    {
        public const int xlCenter = -4108;
        public const int xlRight = -4152;
        public const int xlLeft = -4131;
        public const int xlBottom = -4107;
        public const int xlAutomatic = -4105;
        public const int xlGeneral = 1;
    }

    /// <summary>
    /// Summary description for ApplicationExcel
    /// </summary>
    public class ApplicationExcel
    {
        private object application;

        public bool Visible
        {
            get
            {
                return Convert.ToBoolean(application.GetType().InvokeMember("Visible", BindingFlags.GetProperty, null, application, null));
            }
            set
            {
                application.GetType().InvokeMember("Visible", BindingFlags.SetProperty, null, application, new object[] { value });
            }
        }

        public void Quit()
        {
            application.GetType().InvokeMember("Quit", BindingFlags.InvokeMethod, null, application, null);
            Marshal.ReleaseComObject(application);
            GC.GetTotalMemory(true);
        }

        public Workbooks Workbooks
        {
            get
            {
                return new Workbooks(application.GetType().InvokeMember("Workbooks", BindingFlags.GetProperty, null, application, null));
            }
        }

        public object DecimalSeparator
        {
            get
            {
                return application.GetType().InvokeMember("DecimalSeparator", BindingFlags.GetProperty, null, application, null);
            }
            set
            {
                application.GetType().InvokeMember("DecimalSeparator", BindingFlags.SetProperty, null, application, new object[] { value });
            }
        }

        public object ThousandsSeparator
        {
            get
            {
                return application.GetType().InvokeMember("ThousandsSeparator", BindingFlags.GetProperty, null, application, null);
            }
            set
            {
                application.GetType().InvokeMember("ThousandsSeparator", BindingFlags.SetProperty, null, application, new object[] { value });
            }
        }

        public object UseSystemSeparators
        {
            get
            {
                return application.GetType().InvokeMember("UseSystemSeparators", BindingFlags.GetProperty, null, application, null);
            }
            set
            {
                application.GetType().InvokeMember("UseSystemSeparators", BindingFlags.SetProperty, null, application, new object[] { value });
            }
        }

        public ApplicationExcel()
        {
            string sAppProgID = "Excel.Application";
            Type tExcelObj = Type.GetTypeFromProgID(sAppProgID);
            application = Activator.CreateInstance(tExcelObj);
        }
    }

    /// <summary>
    /// Summary description for Workbooks
    /// </summary>
    public class Workbooks
    {
        private object workbooks;

        public Workbook Add()
        {
            return new Workbook(workbooks.GetType().InvokeMember("Add", BindingFlags.InvokeMethod, null, workbooks, null));
        }

        public Workbook Open(string fileName)
        {
            return new Workbook(workbooks.GetType().InvokeMember("Open", BindingFlags.InvokeMethod, null, workbooks, new object[] { fileName }));
        }

        public void Close()
        {
            workbooks.GetType().InvokeMember("Close", BindingFlags.InvokeMethod, null, workbooks, null);
            Marshal.ReleaseComObject(workbooks);
            GC.GetTotalMemory(true);
        }

        public Workbooks(object _workbooks)
        {
            workbooks = _workbooks;
        }
    }

    /// <summary>
    /// Summary description for Workbook
    /// </summary>
    public class Workbook
    {
        private object workbook;

        public void Save()
        {
            workbook.GetType().InvokeMember("SaveAs", BindingFlags.InvokeMethod, null, workbook, null);
        }

        public void SaveAs(string fileName)
        {
            workbook.GetType().InvokeMember("SaveAs", BindingFlags.InvokeMethod, null, workbook, new object[] { fileName });
        }

        public void Close()
        {
            workbook.GetType().InvokeMember("Close", BindingFlags.InvokeMethod, null, workbook, null);
            Marshal.ReleaseComObject(workbook);
            GC.GetTotalMemory(true);
        }

        public Worksheets Worksheets
        {
            get
            {
                return new Worksheets(workbook.GetType().InvokeMember("Worksheets", BindingFlags.GetProperty, null, workbook, null));
            }
        }

        public Workbook(object _workbook)
        {
            workbook = _workbook;
        }
    }

    /// <summary>
    /// Summary description for Worksheets
    /// </summary>
    public class Worksheets
    {
        private object worksheets;

        public Worksheet get_Worksheet(int index)
        {
            return new Worksheet(worksheets.GetType().InvokeMember("Item", BindingFlags.GetProperty, null, worksheets, new object[] { index }));
        }

        public int Count
        {
            get
            {
                return ((int)worksheets.GetType().InvokeMember("Count", BindingFlags.GetProperty, null, worksheets, null));
            }
            set
            {
                worksheets.GetType().InvokeMember("Count", BindingFlags.SetProperty, null, worksheets, new object[] { value });
            }
        }

        public Worksheets(object _worksheets)
        {
            worksheets = _worksheets;
        }
    }

    /// <summary>
    /// Summary description for Worksheet
    /// </summary>
    public class Worksheet
    {
        private object worksheet;
        public Range get_Range(string range)
        {
            return new Range(worksheet.GetType().InvokeMember("Range", BindingFlags.GetProperty, null, worksheet, new object[] { range }));
        }

        public Range Rows(string Value)
        {
            return new Range(worksheet.GetType().InvokeMember("Rows", BindingFlags.GetProperty, null, worksheet, new object[] { Value }));
        }

        public Range get_Range(string range1, string range2)
        {
            object[] Parameters;
            Parameters = new Object[2];
            Parameters[0] = range1;
            Parameters[1] = range2;
            Range range = new Range(worksheet.GetType().InvokeMember("Range", BindingFlags.GetProperty, null, worksheet, Parameters));
            Parameters = new Object[1];
            Parameters[0] = true;
            range.GetType().InvokeMember("MergeCells", BindingFlags.SetProperty, null, range, Parameters);

            return range;
        }

        public Range Cells(int Row, int Colomn)
        {
            object[] Parameters = new Object[2];

            Parameters[0] = Row;
            Parameters[1] = Colomn;
            return new Range(worksheet.GetType().InvokeMember("Cells", BindingFlags.GetProperty, null, worksheet, Parameters));
        }
        public void Cells_SetValue(int Row, int Colomn, string Value)
        {
            object[] Parameters = new Object[2];

            Parameters[0] = Row;
            Parameters[1] = Colomn;
            Range range_Cells_SetValue;
            range_Cells_SetValue = new Range(worksheet.GetType().InvokeMember("Cells", BindingFlags.GetProperty, null, worksheet, Parameters));
            Parameters = new Object[1];
            Parameters[0] = Value;
            range_Cells_SetValue.GetType().InvokeMember("Value2", BindingFlags.SetProperty, null, range_Cells_SetValue, Parameters);
        }

        public Worksheet(object _worksheet)
        {
            worksheet = _worksheet;
        }
    }

    /// <summary>
    /// Summary description for Range
    /// </summary>
    public class Range
    {
        public static object range;


        public void HorizontalAlignment(int side)
        {
            range.GetType().InvokeMember("HorizontalAlignment", BindingFlags.SetProperty, null, range, new object[] { side });
        }

        public void BordersLineStyle(int bordersStyle, int lineStyle1)//range1.Borders.LineStyle = Excel.XlLineStyle.xlContinuous;
        {
            object borders = range.GetType().InvokeMember("Borders", BindingFlags.GetProperty, null, range, new object[] { bordersStyle });
            borders.GetType().InvokeMember("LineStyle", BindingFlags.SetProperty, null, borders, new object[] { lineStyle1 });
        }

        public void BordersLineStyle(int lineStyle1)
        {
            object borders = range.GetType().InvokeMember("Borders", BindingFlags.GetProperty, null, range, new object[] { 7 });
            borders.GetType().InvokeMember("LineStyle", BindingFlags.SetProperty, null, borders, new object[] { lineStyle1 });
            borders = range.GetType().InvokeMember("Borders", BindingFlags.GetProperty, null, range, new object[] { 8 });
            borders.GetType().InvokeMember("LineStyle", BindingFlags.SetProperty, null, borders, new object[] { lineStyle1 });
            borders = range.GetType().InvokeMember("Borders", BindingFlags.GetProperty, null, range, new object[] { 9 });
            borders.GetType().InvokeMember("LineStyle", BindingFlags.SetProperty, null, borders, new object[] { lineStyle1 });
            borders = range.GetType().InvokeMember("Borders", BindingFlags.GetProperty, null, range, new object[] { 10 });
            borders.GetType().InvokeMember("LineStyle", BindingFlags.SetProperty, null, borders, new object[] { lineStyle1 });
        }

        public void BordersWeight(int bordersStyle, int weight)//range1.Borders.LineStyle = Excel.XlLineStyle.xlContinuous;
        {
            object borders = range.GetType().InvokeMember("Borders", BindingFlags.GetProperty, null, range, new object[] { bordersStyle });
            borders.GetType().InvokeMember("Weight", BindingFlags.SetProperty, null, borders, new object[] { weight });
        }

        public void BordersWeight(int weight)
        {
            object borders = range.GetType().InvokeMember("Borders", BindingFlags.GetProperty, null, range, new object[] { 7 });
            borders.GetType().InvokeMember("Weight", BindingFlags.SetProperty, null, borders, new object[] { weight });
            borders = range.GetType().InvokeMember("Borders", BindingFlags.GetProperty, null, range, new object[] { 8 });
            borders.GetType().InvokeMember("Weight", BindingFlags.SetProperty, null, borders, new object[] { weight });
            borders = range.GetType().InvokeMember("Borders", BindingFlags.GetProperty, null, range, new object[] { 9 });
            borders.GetType().InvokeMember("Weight", BindingFlags.SetProperty, null, borders, new object[] { weight });
            borders = range.GetType().InvokeMember("Borders", BindingFlags.GetProperty, null, range, new object[] { 10 });
            borders.GetType().InvokeMember("Weight", BindingFlags.SetProperty, null, borders, new object[] { weight });
        }

        public void BordersColorIndex(int bordersStyle, int ColorIndex)
        {
            object borders = range.GetType().InvokeMember("Borders", BindingFlags.GetProperty, null, range, new object[] { bordersStyle });
            borders.GetType().InvokeMember("ColorIndex", BindingFlags.SetProperty, null, borders, new object[] { ColorIndex });
        }

        public void BordersColorIndex(int ColorIndex)
        {
            object borders = range.GetType().InvokeMember("Borders", BindingFlags.GetProperty, null, range, new object[] { 7 });
            borders.GetType().InvokeMember("ColorIndex", BindingFlags.SetProperty, null, borders, new object[] { ColorIndex });
            borders = range.GetType().InvokeMember("Borders", BindingFlags.GetProperty, null, range, new object[] { 8 });
            borders.GetType().InvokeMember("ColorIndex", BindingFlags.SetProperty, null, borders, new object[] { ColorIndex });
            borders = range.GetType().InvokeMember("Borders", BindingFlags.GetProperty, null, range, new object[] { 9 });
            borders.GetType().InvokeMember("ColorIndex", BindingFlags.SetProperty, null, borders, new object[] { ColorIndex });
            borders = range.GetType().InvokeMember("Borders", BindingFlags.GetProperty, null, range, new object[] { 10 });
            borders.GetType().InvokeMember("ColorIndex", BindingFlags.SetProperty, null, borders, new object[] { ColorIndex });
        }

        public void VerticalAlignment(int side)
        {
            range.GetType().InvokeMember("VerticalAlignment", BindingFlags.SetProperty, null, range, new object[] { side });
        }

        public object Value2
        {
            get
            {
                return range.GetType().InvokeMember("Value", BindingFlags.GetProperty, null, range, null);
            }
            set
            {
                range.GetType().InvokeMember("Value", BindingFlags.SetProperty, null, range, new object[] { value });
            }
        }

        public object Rows
        {
            get
            {
                return range.GetType().InvokeMember("Rows", BindingFlags.GetProperty, null, range, null);
            }
            set
            {
                range.GetType().InvokeMember("Rows", BindingFlags.SetProperty, null, range, new object[] { value });
            }
        }

        public object MergeCells
        {
            get
            {
                return range.GetType().InvokeMember("MergeCells", BindingFlags.GetProperty, null, range, null);
            }
            set
            {
                range.GetType().InvokeMember("MergeCells", BindingFlags.SetProperty, null, range, new object[] { value });
            }
        }

        public object Orientation
        {
            get
            {
                return range.GetType().InvokeMember("Orientation", BindingFlags.GetProperty, null, range, null);
            }
            set
            {
                range.GetType().InvokeMember("Orientation", BindingFlags.SetProperty, null, range, new object[] { value });
            }
        }

        public object AddIndent
        {
            get
            {
                return range.GetType().InvokeMember("AddIndent", BindingFlags.GetProperty, null, range, null);
            }
            set
            {
                range.GetType().InvokeMember("AddIndent", BindingFlags.SetProperty, null, range, new object[] { value });
            }
        }

        public object WrapText
        {
            get
            {
                return range.GetType().InvokeMember("WrapText", BindingFlags.GetProperty, null, range, null);
            }
            set
            {
                range.GetType().InvokeMember("WrapText", BindingFlags.SetProperty, null, range, new object[] { value });
            }
        }

        public object IndentLevel
        {
            get
            {
                return range.GetType().InvokeMember("IndentLevel", BindingFlags.GetProperty, null, range, null);
            }
            set
            {
                range.GetType().InvokeMember("IndentLevel", BindingFlags.SetProperty, null, range, new object[] { value });
            }
        }

        public object ShrinkToFit
        {
            get
            {
                return range.GetType().InvokeMember("ShrinkToFit", BindingFlags.GetProperty, null, range, null);
            }
            set
            {
                range.GetType().InvokeMember("ShrinkToFit", BindingFlags.SetProperty, null, range, new object[] { value });
            }
        }

        public object Text
        {
            get
            {
                return range.GetType().InvokeMember("Text", BindingFlags.GetProperty, null, range, null);
            }
            set
            {
                range.GetType().InvokeMember("Text", BindingFlags.SetProperty, null, range, new object[] { value });
            }
        }

        public object Formula
        {
            get
            {
                return range.GetType().InvokeMember("Formula", BindingFlags.GetProperty, null, range, null);
            }
            set
            {
                range.GetType().InvokeMember("Formula", BindingFlags.SetProperty, null, range, new object[] { value });
            }
        }


        public object NumberFormat
        {
            get
            {
                return range.GetType().InvokeMember("NumberFormat", BindingFlags.GetProperty, null, range, null);
            }
            set
            {
                range.GetType().InvokeMember("NumberFormat", BindingFlags.SetProperty, null, range, new object[] { value });
            }
        }

        public void Insert(int Index)
        {
            object[] Parameters = new Object[1];

            Parameters[0] = Index;

            range.GetType().InvokeMember("Insert", BindingFlags.GetProperty, null, range, Parameters);
        }

        public Range(object _range)
        {
            range = _range;
        }
    }
}

PM MAIL   Вверх
MAG_S
  Дата 27.7.2008, 17:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 2.8.2007

Репутация: нет
Всего: нет



мои код:
Код

            Excel.ApplicationExcel exelap = new Excel.ApplicationExcel();
            Excel.Workbook wb = new Excel.Workbook(exelap.Workbooks.Open(PriceData.Directory + "//" + PriceData.price2));
            Excel.Worksheets wss = wb.Worksheets;
            Excel.Worksheet ws = wss.get_Worksheet(1);


что в моём коде не так?
при выполнении метода wss.get_Worksheet(1) на этом участке пишет исключение 
 - Method 'Excel.Worksheets.Item' not found.

Код

        public Worksheet get_Worksheet(int index)
        {
            return new Worksheet(worksheets.GetType().InvokeMember("Item", BindingFlags.GetProperty, null, worksheets, new object[] { index }));
        }

PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0617 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.