C # MVC ограниченный читатель Excel - PullRequest
0 голосов
/ 19 октября 2018

Мне нужно прочитать файл Excel, найти идентификатор для каждого значения и сохранить эти значения в базе данных: Оригинал Excel

таблица в SQL Server

Это мой код:

int rowCount = 51,colCount = 11;
        Excel.Application xlApp = new Excel.Application();
        Excel.Workbook xlWorkbook = xlApp.Workbooks.Open(@"C:\Users\melissa\Desktop\lista_items.xlsx");
        Excel._Worksheet xlWorksheet = xlWorkbook.Sheets[1];
        Excel.Range xlRange = xlWorksheet.UsedRange;

for (int i = 2; i <= rowCount; i++)
        {
            item = xlRange.Cells[i, 1].Value2.ToString();
            id_color = consultas.buscar_color_codigo(xlRange.Cells[i, 2].Value2.ToString());
            id_fabricante = consultas.buscar_fabricante(xlRange.Cells[i, 3].Value2.ToString());
            id_size = consultas.buscar_talla(xlRange.Cells[i, 4].Value2.ToString());
            descripcion = xlRange.Cells[i, 5].Value2.ToString();
            id_body_type = consultas.buscar_body_type(xlRange.Cells[i, 6].Value2.ToString());
            id_gender = consultas.buscar_genero(xlRange.Cells[i,7].Value2.ToString());
            id_fabric_type = consultas.buscar_fabric_type(xlRange.Cells[i, 8].Value2.ToString());
            id_fabric_percent = consultas.buscar_percent(xlRange.Cells[i, 9].Value2.ToString());
            id_yarn = consultas.buscar_yarn(xlRange.Cells[i,10].Value2.ToString());
            division = xlRange.Cells[i, 11].Value2.ToString();}

Для сохранения в базе данных:

 Conexion con_s = new Conexion();
            SqlCommand com_s = new SqlCommand();
            com_s.Connection = con_s.AbrirConexion();
            com_s.CommandText = " INSERT INTO items(item,id_color,id_fabricante,id_size,descripcion,id_body_type,id_gender,id_fabric_type,id_fabric_percent,id_yarn,division)VALUES" +
                "('" + item + "','" + id_color + "','" + id_fabricante + "','" + id_size + "','" + descripcion + "','" + id_body_type +
                "','" + id_gender + "','" + id_fabric_type + "','" + id_fabric_percent + "','" + id_yarn + "','" + division + "'  ) ";
            com_s.ExecuteNonQuery();
            con_s.CerrarConexion();

Это только поиск и сохранение 10 строк, не более.это не показывает никакой ошибки, просто останавливается.Я уже изменил httpRuntime executeTimeout и все еще ничего.

Любая помощь будет признательна

1 Ответ

0 голосов
/ 19 октября 2018

перед загрузкой файла Excel удалите все форматы, комментарии и т. Д. На вкладке редактирования Excel.Это влияет на свойство UsedRange в Excel.Также было бы полезно, если бы вы использовали эту строку кода для получения последней использованной ячейки и последней использованной строки.

int lastColumn = xlWorkSheet.LastColumnUsed().ColumnNumber();
int lastRow = xlWorkSheet.LastRowUsed().RowNumber();

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...