2013-12-13 145 views
1

我们的机器上没有安装Microsoft Office。 我想读一个excel文件,并将其存储在一个数据集,但我在Excel到DataTable?不使用Microsoft.Office.Interop.Excel

Dim ws As Microsoft.Office.Interop.Excel.Worksheet 
         Dim Obj As Object 

         ws = DirectCast(workbook.Worksheets(1), Microsoft.Office.Interop.Excel.Worksheet) <---error here 

ERROR收到错误:Retrieving the COM class factory for component with CLSID {00024500-0000-0000-C000-000000000046} failed due to the following error: 80040154.

我知道它最有可能是安装在机器上没有微软Office。但是有没有其他选择?我尝试过Epplus,但大部分关于Epplus的代码都在C#中,我无法使用开发人员融合或telerik将其转换为vb。

有人可以提供一个简单的片段或东西来获取Excel数据到Excel中吗?谢谢。

+0

Epplus是为Excel 2007+一个不错的选择。我建议你不要放弃,因为你的问题转换为VB.NET。尝试在这里转换并发布有关您遇到的任何问题的问题,您很快就会拿起它。 – Joe

回答

1

你可以有一个尝试NPOIMYXLS

Edit:Add some sample code for NPOI.

public static DataTable ExcelInput(string FilePath) 
    {    
     DataTable table = new DataTable(); 
     //Get the excel from filepath 
     HSSFWorkbook workbook = new HSSFWorkbook(File.Open(FilePath, FileMode.Open)); 
     HSSFSheet sheet = (HSSFSheet)workbook.GetSheetAt(0); 

     //get Excel rows 
     int rowsCount = sheet.PhysicalNumberOfRows;   

     int colsCount = sheet.GetRow(0).PhysicalNumberOfCells; 

     for (int i = 0; i < colsCount; i++) 
     { 
      table.Columns.Add(i.ToString()); 
     } 

     for (int x = 0; x < rowsCount; x++) 
     { 
      DataRow dr = table.NewRow(); 
      for (int y = 0; y < colsCount; y++) 
      { 
       dr[y] = sheet.GetRow(x).GetCell(y).ToString(); 
      } 
      table.Rows.Add(dr); 
     } 

     sheet = null; 
     workbook = null; 
     return table; 
    } 
+0

可以请提供一些代码吗?我不知道如何使用VB – Arbaaz

+0

我使用C#.Blow是一些示例代码。 – Justin

相关问题