использование xlrd в Windows формах с Ironpython - PullRequest
2 голосов
/ 29 мая 2020

Я новичок в Windows Forms and Iron python, и мне нужно подключить python script, который считывает значения столбцов файла excel и возвращает список в windows Form, поэтому я сделал класс для этого:

class Python_Script
    {
        private ScriptEngine engine;
        private ScriptScope scope;
        private ScriptSource source;
        public Python_Script(string name)
        {
            engine = Python.CreateEngine();
            scope = engine.CreateScope();
            string str = @"script_route" + name;
            engine.ExecuteFile(@str, scope);
        } 

        public List<string> Col_Values(int sheet, int col)
        {
            List<string> result;
            dynamic col_values = scope.GetVariable("Col_Values");
            result = col_values(sheet, col);
            return result;
        }

И когда mi инициализируется, я делаю это:

public partial class Form2 : Form
    {
        List<string> test_col = new List<string>();
        Python_Script my_py = new Python_Script("script_leer_excel.py");

        public Form2()
        {
            test_col =  my_py.Col_Values(0,0);
        }

Это мой python скрипт

import sys
import xlrd

loc = ("excel_route")
wb = xlrd.open_workbook(loc)

def Col_Values(sheet, col):
    sheet = wb.sheet_by_index(sheet)
    result = sheet.col_values(col)
    return result

Но когда я запускаю код, я получаю сообщение об ошибке: Iron Python .Runtime.Exceptions.ImportException: 'No module named xlrd'

Я понятия не имею, как установить модуль xlrd в Iron python , Я установил его с помощью командной строки для python 3.8, и моя python среда в visualstrudio сообщает мне, что я использую python 3.8 Visual studio python enviroment

...