{ "metadata": { "name": "", "signature": "sha256:9a4a4e7f34ca0925e7ded4f015c87f51122cbd020ee773719ffb7aba51f8e4f8" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# \u0417\u0430\u043f\u0438\u0441\u044c \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u0444\u0430\u0439\u043b\u044b MS Excel\n", "# Writing data to MS Excel files\n", "\n", "\u0410\u0432\u0442\u043e\u0440: \u0428\u0430\u0431\u0430\u043d\u043e\u0432 \u041f\u0430\u0432\u0435\u043b\n", "\n", "E-mail: meteomail@yandex.ru\n", "\n", "\u0414\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0434\u0430\u0432\u043d\u043e \u0432 \u0431\u043b\u043e\u0433\u0435 \u0431\u044b\u043b \u043f\u043e\u0441\u0442 [\u043f\u0440\u043e \u0447\u0442\u0435\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0437 \u0444\u0430\u0439\u043b\u0430 excel](http://localhost:8888/notebooks/my_githubs/rus_python/PY1_MS_ExcelFile_reading.ipynb). \u0412\u043e\u0441\u043f\u043e\u043b\u043d\u0438\u043c \u043f\u0440\u043e\u0431\u0435\u043b \u0438 \u043d\u0430\u0443\u0447\u0438\u043c\u0441\u044f \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u043c\u0443 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044e - \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u0444\u0430\u0439\u043b Excel.\n", "\n", "\u041e\u0431\u0449\u0430\u044f \u043b\u043e\u0433\u0438\u043a\u0430 \u043f\u0440\u043e\u0441\u0442\u0430 - \u043d\u0443\u0436\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u043d\u043e\u043c\u0435\u0440\u0430 (\u0441\u0442\u043e\u043b\u0431\u0446\u0430/\u0441\u0442\u0440\u043e\u043a\u0438) \u044f\u0447\u0435\u0435\u043a \u0438 \u0434\u0430\u043d\u043d\u044b\u0435. \u0414\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0444\u043e\u0440\u043c\u0430\u0442\u043e\u043c xls \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043c\u043e\u0434\u0443\u043b\u044c xlwt.\n", "\n", "\u041f\u0440\u043e \u043c\u043e\u0434\u0443\u043b\u044c xlwt \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u043d\u0430 \u0441\u0430\u0439\u0442\u0435 [python-excel.org](http://www.python-excel.org/)." ] }, { "cell_type": "code", "collapsed": false, "input": [ "import numpy as np\n", "from xlwt import Workbook\n", "\n", "x = np.arange(27).reshape((9,3))*10.\n", "\n", "# 1 \u0421\u043e\u0437\u0434\u0430\u0451\u043c \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 \u043a\u043b\u0430\u0441\u0441\u0430 Workbook\n", "book = Workbook()\n", "\n", "# 2 \u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043d\u043e\u0432\u044b\u0439 \u041b\u0438\u0441\u0442 \u0432 \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 Workbook \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043c\u0435\u0442\u043e\u0434\u0430 add_sheet()\n", "sheet = book.add_sheet('Sheet 1')\n", "\n", "# 3 \u0424\u0443\u043d\u043a\u0446\u0438\u044f enumerate \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043d\u043e\u043c\u0435\u0440 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438 (\u0438\u043d\u0434\u0435\u043a\u0441) \u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\n", "\n", "debug = False\n", "for row, array in enumerate(x):\n", " for col, value in enumerate(array):\n", " # 4 \u0417\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432 \u044f\u0447\u0435\u0439\u043a\u0443, \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u044f \u043d\u043e\u043c\u0435\u0440\u0430 \u0435\u0451 \u0441\u0442\u0440\u043e\u043a\u0438/\u0441\u0442\u043e\u043b\u0431\u0446\u0430 \u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\n", " if(debug): print(row, col, value)\n", " sheet.write(row, col, value)\n", "\n", "# 5 \u0421\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043c\u0435\u0442\u043e\u0434\u0430 save() \u0441\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0444\u0430\u0439\u043b\n", "book.save(\"test_wr_excel.xls\")" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 2 }, { "cell_type": "markdown", "metadata": {}, "source": [ "\u0415\u0441\u043b\u0438 \u0435\u0441\u0442\u044c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u044c \u0432\u044b\u043f\u0438\u0441\u0430\u0442\u044c \u043c\u0430\u0442\u0440\u0438\u0446\u044b \u043d\u0430 \u0440\u0430\u0437\u043d\u044b\u0435 \u043b\u0438\u0441\u0442\u044b \u0444\u0430\u0439\u043b\u0430 Excel, \u0442\u043e \u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0442\u0430\u043a:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "import numpy as np\n", "from xlwt import Workbook\n", "\n", "xx = np.arange(27).reshape((9,3))*10.\n", "yy = np.random.random(100).reshape((10,10))\n", "zz = np.ones(15).reshape((5,3))\n", "\n", "# \u041e\u0431\u044a\u0435\u0434\u0438\u043d\u0438\u044f\u0435\u043c \u043c\u0430\u0441\u0441\u0438\u0432\u044b \u0432 \u0441\u043f\u0438\u0441\u043e\u043a xyz\n", "\n", "xyz = [xx, yy, zz]\n", "xyz_name = ['xx', 'yy', 'zz']\n", "\n", "book = Workbook()\n", "i = -1\n", "for x in xyz:\n", " i += 1\n", " s = xyz_name[i]\n", " sheet = book.add_sheet(s)\n", " for row, array in enumerate(x):\n", " for col, value in enumerate(array):\n", " sheet.write(row, col, value)\n", "\n", "book.save(\"test_wr_excel2.xls\")" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 3 }, { "cell_type": "markdown", "metadata": {}, "source": [ "\u0421\u0442\u043e\u0438\u0442 \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u044b\u043f\u0438\u0441\u0430\u0442\u044c \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u0442\u043e\u043b\u0431\u0435\u0446, \u043d\u0435 \u043c\u0430\u0442\u0440\u0438\u0446\u0443, \u0442\u043e \u043f\u0440\u0438\u0432\u0435\u0434\u0451\u043d\u043d\u044b\u0439 \u0432\u044b\u0448\u0435 \u043a\u043e\u0434 \u0431\u0443\u0434\u0435\u0442 \u0434\u0430\u0432\u0430\u0442\u044c \u043e\u0448\u0438\u0431\u043a\u0443. \u0427\u0442\u043e\u0431\u044b \u0432\u044b\u043f\u0438\u0441\u0430\u0442\u044c \u0432 \u0444\u0430\u0439\u043b \u0438 \u043c\u0430\u0442\u0440\u0438\u0446\u044b \u0438 \u0432\u0435\u043a\u0442\u043e\u0440\u0430, \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "import numpy as np\n", "from xlwt import Workbook\n", "\n", "xx = np.arange(27).reshape((9,3))*10.\n", "yy = np.random.random(100).reshape((10,10))\n", "zz = np.ones(15)\n", "\n", "# \u041e\u0431\u044a\u0435\u0434\u0438\u043d\u0438\u044f\u0435\u043c \u043c\u0430\u0441\u0441\u0438\u0432\u044b \u0432 \u0441\u043f\u0438\u0441\u043e\u043a xyz\n", "\n", "xyz = [xx, yy, zz]\n", "xyz_name = ['xx', 'yy', 'zz']\n", "\n", "book = Workbook()\n", "i = -1\n", "for x in xyz:\n", " i += 1\n", " s = xyz_name[i]\n", " sheet = book.add_sheet(s)\n", " for row, array in enumerate(x):\n", " # \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0430 \u0432\u0435\u043a\u0442\u043e\u0440. \u0415\u0441\u043b\u0438 \u0434\u0430, \u0442\u043e\n", " if(np.size(array) == 1):\n", " col = 0\n", " sheet.write(row, col, array)\n", " else:\n", " for col, value in enumerate(array):\n", " sheet.write(row, col, value)\n", "\n", "book.save(\"test_wr_excel3.xls\")" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 4 }, { "cell_type": "markdown", "metadata": {}, "source": [ "\u041c\u043e\u0436\u043d\u043e \u043e\u0444\u043e\u0440\u043c\u0438\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0439 \u043a\u043e\u0434 \u0432 \u0432\u0438\u0434\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0442\u0430\u043a\u043e\u0439:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "import numpy as np\n", "from xlwt import Workbook\n", "\n", "\n", "def wr_xls(x, name, debug=False):\n", " '''\n", " Saves matrix 'X' in 'name.xls' file\n", "\n", " Parameters\n", " ----------\n", " x : (numpy.ndarray)\n", " Input matrix (2D array)\n", "\n", " name : (str)\n", " The name of future xls file\n", "\n", " debug: (bool), optional\n", "\n", " Returns\n", " -------\n", " File : (xls)\n", " Xls file with matrix values in it\n", " '''\n", " book = Workbook()\n", " sheet = book.add_sheet('Sheet 1')\n", "\n", " for row, array in enumerate(x):\n", " if (debug):\n", " print (row, array)\n", " if(np.size(array) == 1):\n", " col = 0\n", " sheet.write(row, col, array)\n", " else:\n", " for col, value in enumerate(array):\n", " sheet.write(row, col, value)\n", "\n", " name = \"%s.xls\" % (name)\n", " book.save(name)\n", "\n", "N = 20\n", "x = np.random.rand(N)\n", "wr_xls(x, 'test_rand_excel')" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 5 } ], "metadata": {} } ] }