我们的计算机上没有安装Microsoft Office。 我正在尝试读取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
错误:Retrieving the COM class factory for component with CLSID {00024500-0000-0000-C000-000000000046} failed due to the following error: 80040154.
我知道很可能机器上没有安装微软办公室。但是有替代方案吗?我试过Epplus,但是互联网上关于Epplus的大部分代码都在C#中,我无法使用developer fusion或telerik转换为vb。
有人可以提供一个简单的片段或什么来将Excel数据导入DataSet吗?谢谢。
答案 0 :(得分:1)
编辑:为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;
}
答案 1 :(得分:0)
确保在没有安装excel的情况下调用Excel interop时出错!