{"id":529,"date":"2017-05-01T02:41:26","date_gmt":"2017-04-30T22:41:26","guid":{"rendered":"http:\/\/infobs.athn.ru\/?p=529"},"modified":"2017-05-01T02:41:26","modified_gmt":"2017-04-30T22:41:26","slug":"funktsii-dlya-rabotyi-s-excel-iz-c","status":"publish","type":"post","link":"https:\/\/infobase.athn.ru\/program\/2017\/05\/funktsii-dlya-rabotyi-s-excel-iz-c\/","title":{"rendered":"\u0424\u0443\u043d\u043a\u0446\u0438\u0438 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 Excel \u0438\u0437 C#"},"content":{"rendered":"<p>http:\/\/www.sql.ru\/forum\/620401\/funkcii-dlya-raboty-s-excel-iz-c (\u0442\u0435\u043c\u0430 \u0437\u0430\u043a\u0440\u044b\u0442\u0430 \u043a\u0430\u043a \u043d\u0435\u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u0430\u044f)<\/p>\n<p>\u0421\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u043e: \u043d\u043e\u044f\u0431\u0440\u044c 2009<br \/>\n<!--more--><\/p>\n<pre>\npublic const string UID = \"Excel.Application\";\n        object oExcel = null;\n        object WorkBooks, WorkBook, WorkSheets, WorkSheet, Range, Interior;\n\n        \/\/\u041a\u041e\u041d\u0421\u0422\u0420\u0423\u041a\u0422\u041e\u0420 \u041a\u041b\u0410\u0421\u0421\u0410\n        public Excel()\n        {\n            oExcel = Activator.CreateInstance(Type.GetTypeFromProgID(UID));\n        }\n\n        \/\/\u0412\u0418\u0414\u0418\u041c\u041e\u0421\u0422\u042c EXCEL - \u0421\u0412\u041e\u0419\u0421\u0422\u0412\u041e \u041a\u041b\u0410\u0421\u0421\u0410\n        public bool Visible\n        {\n            set\n            {\n                if (false == value)\n                    oExcel.GetType().InvokeMember(\"Visible\", BindingFlags.SetProperty,\n                        null, oExcel, new object[] { false });\n\n                else\n                    oExcel.GetType().InvokeMember(\"Visible\", BindingFlags.SetProperty,\n                        null, oExcel, new object[] { true });\n            }\n        }\n        \n\n        \/\/\u041e\u0422\u041a\u0420\u042b\u0422\u042c \u0414\u041e\u041a\u0423\u041c\u0415\u041d\u0422\n        public void OpenDocument(string name)\n        {\n            WorkBooks = oExcel.GetType().InvokeMember(\"Workbooks\", BindingFlags.GetProperty, null, oExcel, null);\n            WorkBook = WorkBooks.GetType().InvokeMember(\"Open\", BindingFlags.InvokeMethod, null, WorkBooks, new object[] { name, true });\n            WorkSheets = WorkBook.GetType().InvokeMember(\"Worksheets\", BindingFlags.GetProperty, null, WorkBook, null);\n            WorkSheet = WorkSheets.GetType().InvokeMember(\"Item\", BindingFlags.GetProperty, null, WorkSheets, new object[] { 1 });\n            \/\/ Range = WorkSheet.GetType().InvokeMember(\"Range\",BindingFlags.GetProperty,null,WorkSheet,new object[1] { \"A1\" });\n        }\n        \n        \/\/ \u041d\u041e\u0412\u042b\u0419 \u0414\u041e\u041a\u0423\u041c\u0415\u041d\u0422\n        public void NewDocument()\n        {\n            WorkBooks = oExcel.GetType().InvokeMember(\"Workbooks\", BindingFlags.GetProperty, null, oExcel, null);\n            WorkBook = WorkBooks.GetType().InvokeMember(\"Add\", BindingFlags.InvokeMethod, null, WorkBooks, null);\n            WorkSheets = WorkBook.GetType().InvokeMember(\"Worksheets\", BindingFlags.GetProperty, null, WorkBook, null);\n            WorkSheet = WorkSheets.GetType().InvokeMember(\"Item\", BindingFlags.GetProperty, null, WorkSheets, new object[] { 1 });\n            Range = WorkSheet.GetType().InvokeMember(\"Range\", BindingFlags.GetProperty, null, WorkSheet, new object[1] { \"A1\" });\n        }\n        \/\/\u0417\u0410\u041a\u0420\u042b\u0422\u042c \u0414\u041e\u041a\u0423\u041c\u0415\u041d\u0422\n        public void CloseDocument()\n        {\n            WorkBook.GetType().InvokeMember(\"Close\", BindingFlags.InvokeMethod, null, WorkBook, new object[] { true });\n        }\n        \/\/\u0421\u041e\u0425\u0420\u0410\u041d\u0418\u0422\u042c \u0414\u041e\u041a\u0423\u041c\u0415\u041d\u0422\n        public void SaveDocument(string name)\n        {\n            if (File.Exists(name))\n                WorkBook.GetType().InvokeMember(\"Save\", BindingFlags.InvokeMethod, null,\n                    WorkBook, null);\n            else\n                WorkBook.GetType().InvokeMember(\"SaveAs\", BindingFlags.InvokeMethod, null,\n                    WorkBook, new object[] { name });\n        }\n\n        \/\/ \u0417\u0410\u041f\u0418\u0421\u0410\u0422\u042c \u0417\u041d\u0410\u0427\u0415\u041d\u0418\u0415 \u0412 \u042f\u0427\u0415\u0419\u041a\u0423\n        public void SetValue(string range, string value)\n        {\n            Range = WorkSheet.GetType().InvokeMember(\"Range\", BindingFlags.GetProperty,\n                null, WorkSheet, new object[] { range });\n            Range.GetType().InvokeMember(\"Value\", BindingFlags.SetProperty, null, Range, new object[] { value });\n        }\n\n        \/\/\u041e\u0411\u042a\u0415\u0414\u0415\u041d\u0418\u0422\u042c \u042f\u0427\u0415\u0419\u041a\u0418 \n        \/\/ Alignment - \u0412\u042b\u0420\u0410\u0412\u041d\u0418\u0412\u0410\u041d\u0418\u0415 \u0412 \u041e\u0411\u042a\u0415\u0414\u0418\u041d\u0415\u041d\u041d\u042b\u0425 \u042f\u0427\u0415\u0419\u041a\u0410\u0425\n        public void SetMerge(string range, int Alignment)\n        {\n            Range = WorkSheet.GetType().InvokeMember(\"Range\", BindingFlags.GetProperty,\n                null, WorkSheet, new object[] { range });\n            object[] args = new object[] { Alignment };\n            Range.GetType().InvokeMember(\"MergeCells\", BindingFlags.SetProperty, null, Range, new object[] { true });\n            Range.GetType().InvokeMember(\"HorizontalAlignment\", BindingFlags.SetProperty, null, Range, args);\n        }\n\n        \/\/\u0423\u0421\u0422\u0410\u041d\u041e\u0412\u0418\u0422\u042c \u041e\u0420\u0418\u0415\u041d\u0422\u0410\u0426\u0418\u042e \u0421\u0422\u0420\u0410\u041d\u0418\u0426\u042b \n        \/\/1 - \u041a\u041d\u0418\u0416\u041d\u042b\u0419\n        \/\/2 - \u0410\u041b\u042c\u0411\u041e\u041c\u041d\u042b\u0419\n        public void SetOrientation(int Orientation)\n        {\n            \/\/Range.Interior.ColorIndex\n            object PageSetup = WorkSheet.GetType().InvokeMember(\"PageSetup\", BindingFlags.GetProperty,\n                null, WorkSheet, null);\n\n            PageSetup.GetType().InvokeMember(\"Orientation\", BindingFlags.SetProperty,\n                null, PageSetup, new object[] { Orientation });\n        }\n\n        \/\/\u0423\u0421\u0422\u0410\u041d\u041e\u0412\u0418\u0422\u042c \u0428\u0418\u0420\u0418\u041d\u0423 \u0421\u0422\u041e\u041b\u0411\u0426\u041e\u0412\n        public void SetColumnWidth(string range, double Width)\n        {\n            Range = WorkSheet.GetType().InvokeMember(\"Range\", BindingFlags.GetProperty,\n                null, WorkSheet, new object[] { range });\n            object[] args = new object[] { Width };\n            Range.GetType().InvokeMember(\"ColumnWidth\", BindingFlags.SetProperty, null, Range, args);\n        }\n        \n        \/\/\u0423\u0421\u0422\u0410\u041d\u041e\u0412\u0418\u0422\u042c \u0412\u042b\u0421\u041e\u0422\u0423 \u0421\u0422\u0420\u041e\u041a\n        public void SetRowHeight(string range, double Height)\n        {\n            Range = WorkSheet.GetType().InvokeMember(\"Range\", BindingFlags.GetProperty,\n                null, WorkSheet, new object[] { range });\n            object[] args = new object[] { Height };\n            Range.GetType().InvokeMember(\"RowHeight\", BindingFlags.SetProperty, null, Range, args);\n        }\n\n        \/\/\u0423\u0421\u0422\u0410\u041d\u041e\u0412\u0418\u0422\u042c \u0412\u0418\u0414 \u0420\u0410\u041c\u041a\u0418 \u0412\u041e\u041a\u0420\u0423\u0413 \u042f\u0427\u0415\u0419\u041a\u0418\n        public void SetBorderStyle(string range, int Style)\n        {\n            Range = WorkSheet.GetType().InvokeMember(\"Range\", BindingFlags.GetProperty,\n                null, WorkSheet, new object[] { range });\n            object[] args = new object[] { 1 };\n            object[] args1 = new object[] { 1 };\n            object Borders = Range.GetType().InvokeMember(\"Borders\", BindingFlags.GetProperty, null, Range, null);\n            Borders = Range.GetType().InvokeMember(\"LineStyle\", BindingFlags.SetProperty, null, Borders, args);\n        } \n\n        \/\/\u0427\u0422\u0415\u041d\u0418\u0415 \u0414\u0410\u041d\u041d\u042b\u0425 \u0418\u0417 \u0412\u042b\u0411\u0420\u0410\u041d\u041d\u041e\u0419 \u042f\u0427\u0415\u0419\u041a\u0418\n        public string GetValue(string range)\n        {\n            Range = WorkSheet.GetType().InvokeMember(\"Range\", BindingFlags.GetProperty,\n                null, WorkSheet, new object[] { range });\n            return Range.GetType().InvokeMember(\"Value\", BindingFlags.GetProperty,\n                null, Range, null).ToString();\n        }\n\n        \/\/\u0423\u0421\u0422\u0410\u041d\u041e\u0412\u0418\u0422\u042c \u0412\u042b\u0420\u0410\u0412\u041d\u0418\u0412\u0410\u041d\u0418\u0415 \u0412 \u042f\u0427\u0415\u0419\u041a\u0415 \u041f\u041e \u0412\u0415\u0420\u0422\u0418\u041a\u0410\u041b\u0418\n        public void SetVerticalAlignment(string range, int Alignment)\n        {\n            Range = WorkSheet.GetType().InvokeMember(\"Range\", BindingFlags.GetProperty,\n                null, WorkSheet, new object[] { range });\n            object[] args = new object[] { Alignment };\n            Range.GetType().InvokeMember(\"VerticalAlignment\", BindingFlags.SetProperty, null, Range, args);\n        }\n\n        \/\/\u0423\u0421\u0422\u0410\u041d\u041e\u0412\u0418\u0422\u042c \u0412\u042b\u0420\u0410\u0412\u041d\u0418\u0412\u0410\u041d\u0418\u0415 \u0412 \u042f\u0427\u0415\u0419\u041a\u0415 \u041f\u041e \u0413\u041e\u0420\u0418\u0417\u041e\u041d\u0422\u0410\u041b\u0418\n        public void SetHorisontalAlignment(string range, int Alignment)\n        {\n            Range = WorkSheet.GetType().InvokeMember(\"Range\", BindingFlags.GetProperty,\n                null, WorkSheet, new object[] { range });\n            object[] args = new object[] { Alignment };\n            Range.GetType().InvokeMember(\"HorizontalAlignment\", BindingFlags.SetProperty, null, Range, args);\n        }\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>http:\/\/www.sql.ru\/forum\/620401\/funkcii-dlya-raboty-s-excel-iz-c (\u0442\u0435\u043c\u0430 \u0437\u0430\u043a\u0440\u044b\u0442\u0430 \u043a\u0430\u043a \u043d\u0435\u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u0430\u044f) \u0421\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u043e: \u043d\u043e\u044f\u0431\u0440\u044c 2009<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[32],"tags":[],"class_list":["post-529","post","type-post","status-publish","format-standard","hentry","category-csharp"],"_links":{"self":[{"href":"https:\/\/infobase.athn.ru\/program\/wp-json\/wp\/v2\/posts\/529","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/infobase.athn.ru\/program\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/infobase.athn.ru\/program\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/infobase.athn.ru\/program\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/infobase.athn.ru\/program\/wp-json\/wp\/v2\/comments?post=529"}],"version-history":[{"count":0,"href":"https:\/\/infobase.athn.ru\/program\/wp-json\/wp\/v2\/posts\/529\/revisions"}],"wp:attachment":[{"href":"https:\/\/infobase.athn.ru\/program\/wp-json\/wp\/v2\/media?parent=529"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/infobase.athn.ru\/program\/wp-json\/wp\/v2\/categories?post=529"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/infobase.athn.ru\/program\/wp-json\/wp\/v2\/tags?post=529"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}