在服务器没有安装excel的时候,我们可以通过NPOI来获取Excel里面的数据
首先在网上下载需要引用的文件ICSharpCode.SharpZipLib.dll
NPOI.dll
NPOI.OOXML.dll
NPOI.OpenXml4Net.dll
NPOI.OpenXmlFormats.dll
NPOI.XML
然后在项目中引用中添加这些文件。
命名空间
using NPOI.HSSF.UserModel;
using NPOI.SS.UserModel;
HSSFWorkbook wb = new HSSFWorkbook(new FileStream(Server.MapPath("/Excel.xlsx/T669-9-17.xls"), FileMode.Open));
ISheet sht = wb.GetSheet("Sheet1");//sht为工作表
//取行Excel的最大行数
int rowsCount = sht.PhysicalNumberOfRows;
//为保证Table布局与Excel一样,这里应该取所有行中的最大列数(需要遍历整个Sheet)。
//为少一交全Excel遍历,提高性能,我们可以人为把第0行的列数调整至所有行中的最大列数。
int colsCount = sht.GetRow(0).PhysicalNumberOfCells;
for (int rowIndex = 0; rowIndex < rowsCount; rowIndex++)
{
for(int colIndex=0;colIndex<colsCount;colIndex++){
string x=sht.GetRow(rowIndex).GetCell(colIndex).ToString();//重点,可以取出单元格内的内容。
//都是从0开始计数,即第一个为0
}
}
//XSSFWorkbook 适用XLSX格式,HSSFWorkbook 适用XLS格式
如果是xlsx格式,就修改为
XSSFWorkbook wb = new XSSFWorkbook(new FileStream(Server.MapPath("/Temp/" + FileUpload1.FileName), FileMode.Open));