c#
  • excel
  • oledbdataadapter
  • 2015-06-26 3 views 1 likes 
    1

    Я импортирую excel в datatable в мой проект asp.net.C# Import excel file

    У меня есть код ниже:

    string excelConString = string.Format(
    "Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};" + 
    "Extended Properties='Excel 8.0;" + 
    
    "IMEX=1;TypeGuessRows=0;ImportMixedTypes=Text;'", filepath); 
    
    
    
    using (OleDbConnection connection = new OleDbConnection(excelConString)) 
    { 
    
    connection.Open(); 
    string worksheet; 
    
    worksheet = "Sheet 1$"; 
    
    string connStr; 
    connStr = string.Format("Select * FROM `{0}`", worksheet); 
    OleDbDataAdapter daSheet = new OleDbDataAdapter(connStr, connection); 
    DataSet dataset = new DataSet(); 
    DataTable table; 
    table = new DataTable(); 
    daSheet.Fill(table); 
    dataset.Tables.Add(table); 
    
    connStr = string.Format("Select * FROM `{0}$`", worksheet); 
    
    table = new DataTable(); 
    daSheet.Fill(table); 
    dataset.Tables.Add(table); 
    
    } 
    

    Когда я запускаю выше код для того, чтобы импортировать Excel, последние данные всегда не хватает, потому что последние данные имеет особый характер, как ниже

    "I, O, S "и т.д.

    Как я могу решить эту проблему problem.I добавил ниже код

    "IMEX=1;TypeGuessRows=0;ImportMixedTypes=Text; 
    

    однако он не работает для меня.

    Любая помощь будет оценена по достоинству.

    Спасибо

    ответ

    2

    Просто ответьте на этот вопрос другим читателям, если они есть. Если вы предпочитаете обращаться с POCO напрямую с файлом Excel, рекомендуем использовать мой инструмент Npoi.Mapper, сопоставитель, основанный на соглашениях, между сильным типизированным объектом и данными Excel через NPOI.

    Получить объекты из Excel (XLS или XLSX)

    var mapper = new Mapper("Book1.xlsx"); 
    var objs1 = mapper.Take<SampleClass>("sheet2"); 
    
    // You can take objects from the same sheet with different type. 
    var objs2 = mapper.Take<AnotherClass>("sheet2"); 
    

    Экспорт объектов в Excel (XLS или XLSX)

    //var objects = ... 
    var mapper = new Mapper(); 
    mapper.Save("test.xlsx", objects, "newSheet", overwrite: false); 
    

    Помещенный различные типы объектов в книге памяти и экспорта вместе.

    var mapper = new Mapper("Book1.xlsx"); 
    mapper.Put(products, "sheet1", true); 
    mapper.Put(orders, "sheet2", false); 
    mapper.Save("Book1.xlsx"); 
    
    Смежные вопросы