excel 导入

using NPOI.HPSF;
using NPOI.HSSF.UserModel;
using NPOI.HSSF.Util;
using NPOI.SS.UserModel;
using NPOI.SS.Util;
using NPOI.XSSF.UserModel;
using System;
using System.Collections.Generic;
using System.Data;
using System.IO;
using System.Linq;
using System.Text;
using System.Web.UI;

namespace GKBLL.Common
{
public class ExcelUtil
{

private static ExcelUtil _instance;
public static ExcelUtil GetInstance()
{
if (_instance == null)
_instance = new ExcelUtil();
return _instance;
}

#region 读取Excel文件内容转换为DataSet
/// <summary>
/// 读取Excel文件内容转换为DataSet,列名依次为 "c0"……c[columnlength-1]
/// </summary>
/// <param name="FileName">文件绝对路径</param>
/// <param name="startRow">数据开始行数(1为第一行)</param>
/// <param name="ColumnDataType">每列的数据类型</param>
/// <returns></returns>
public DataSet ReadExcel(string FileName, int sheetIndex, int startRow, params NpoiDataType[] ColumnDataType)
{
int ertime = 0;
int intime = 0;
DataSet ds = new DataSet("ds");
DataTable dt = new DataTable("dt");
DataRow dr;
StringBuilder sb = new StringBuilder();
using (FileStream stream = new FileStream(@FileName, FileMode.Open, FileAccess.Read))
{
IWorkbook workbook = WorkbookFactory.Create(stream);//使用接口,自动识别excel2003/2007格式
ISheet sheet = workbook.GetSheetAt(sheetIndex);//得到里面指定的Sheet
int j;
IRow row;
#region ColumnDataType赋值
if (ColumnDataType.Length <= 0)
{
row = sheet.GetRow(startRow - 1);//得到第i行
ColumnDataType = new NpoiDataType[row.LastCellNum];
for (int i = 0; i < row.LastCellNum; i++)
{
ICell hs = row.GetCell(i);
ColumnDataType[i] = GetCellDataType(hs);
}
}
#endregion
for (j = 0; j < ColumnDataType.Length; j++)
{
Type tp = GetDataTableType(ColumnDataType[j]);
dt.Columns.Add("c" + j, tp);
}
for (int i = startRow - 1; i < sheet.PhysicalNumberOfRows; i++)
{
row = sheet.GetRow(i);//得到第i行
if (row == null) continue;
try
{
dr = dt.NewRow();

for (j = 0; j < ColumnDataType.Length; j++)
{
dr["c" + j] = GetCellData(ColumnDataType[j], row, j);
}
dt.Rows.Add(dr);
intime++;
}
catch (Exception er)
{
ertime++;
sb.Append(string.Format("第{0}行出错:{1}\r\n", i + 1, er.Message));
continue;
}
}
ds.Tables.Add(dt);
}
if (ds.Tables[0].Rows.Count == 0 && sb.ToString() != "") throw new Exception(sb.ToString());
return ds;
}
/// <summary>
/// 读取Excel文件内容转换为DataSet,列名依次为 "c0"……c[columnlength-1]
/// </summary>
/// <param name="FileName">文件绝对路径</param>
/// <param name="startRow">数据开始行数(1为第一行)</param>
/// <returns></returns>
public DataSet ReadExcelAllString(string FileName, int sheetIndex, int startRow)
{
int ertime = 0;
int intime = 0;
DataSet ds = new DataSet("ds");
DataTable dt = new DataTable("dt");
DataRow dr;
StringBuilder sb = new StringBuilder();
using (FileStream stream = new FileStream(@FileName, FileMode.Open, FileAccess.Read))
{
IWorkbook workbook = WorkbookFactory.Create(stream);//使用接口,自动识别excel2003/2007格式
ISheet sheet = workbook.GetSheetAt(sheetIndex);//得到里面指定的Sheet
int j;
IRow row;
#region ColumnDataType赋值
row = sheet.GetRow(startRow - 1);//得到起始行
NpoiDataType[] ColumnDataType = new NpoiDataType[row.LastCellNum];//全都是string类型
#endregion
for (j = 0; j < ColumnDataType.Length; j++)
{
Type tp = GetDataTableType(ColumnDataType[j]);
dt.Columns.Add("c" + j, tp);
}
for (int i = startRow - 1; i < sheet.PhysicalNumberOfRows; i++)
{
row = sheet.GetRow(i);//得到第i行
if (row == null) continue;
try
{
dr = dt.NewRow();

for (j = 0; j < ColumnDataType.Length; j++)
{
//dr["c" + j] = GetCellData(ColumnDataType[j], row, j);
dr["c" + j] = GetCellDataStrNum(ColumnDataType[j], row, j);
}
dt.Rows.Add(dr);
intime++;
}
catch (Exception er)
{
ertime++;
sb.Append(string.Format("第{0}行出错:{1}\r\n", i + 1, er.Message));
continue;
}
}
ds.Tables.Add(dt);
}
if (ds.Tables[0].Rows.Count == 0 && sb.ToString() != "") throw new Exception(sb.ToString());
return ds;
}
#endregion

#region 从DataSet导出到MemoryStream流2003
/// <summary>
/// 从DataSet导出到MemoryStream流2003
/// </summary>
/// <param name="SaveFileName">文件保存路径</param>
/// <param name="SheetName">Excel文件中的Sheet名称</param>
/// <param name="ds">存储数据的DataSet</param>
/// <param name="startRow">从哪一行开始写入,从0开始</param>
/// <param name="datatypes">DataSet中的各列对应的数据类型</param>
public bool CreateExcel2003(string SaveFileName, string SheetName, DataSet ds, int startRow, params NpoiDataType[] datatypes)
{
try
{
if (startRow < 0) startRow = 0;
HSSFWorkbook wb = new HSSFWorkbook();
wb = new HSSFWorkbook();
DocumentSummaryInformation dsi = PropertySetFactory.CreateDocumentSummaryInformation();
dsi.Company = "pkm";
SummaryInformation si = PropertySetFactory.CreateSummaryInformation();
si.Title =
si.Subject = "automatic genereted document";
si.Author = "pkm";
wb.DocumentSummaryInformation = dsi;
wb.SummaryInformation = si;
ISheet sheet = wb.CreateSheet(SheetName);
//sheet.SetColumnWidth(0, 50 * 256);
//sheet.SetColumnWidth(1, 100 * 256);
IRow row;
ICell cell;
DataRow dr;
int j;
int maxLength = 0;
int curLength = 0;
object columnValue;
DataTable dt = ds.Tables[0];
if (datatypes.Length < dt.Columns.Count)
{
datatypes = new NpoiDataType[dt.Columns.Count];
for (int i = 0; i < dt.Columns.Count; i++)
{
string dtcolumntype = dt.Columns[i].DataType.Name.ToLower();
switch (dtcolumntype)
{
case "string": datatypes[i] = NpoiDataType.String;
break;
case "datetime": datatypes[i] = NpoiDataType.Datetime;
break;
case "boolean": datatypes[i] = NpoiDataType.Bool;
break;
case "double": datatypes[i] = NpoiDataType.Numeric;
break;
default: datatypes[i] = NpoiDataType.String;
break;
}
}
}

#region 创建表头
row = sheet.CreateRow(0);//创建第i行
ICellStyle style1 = wb.CreateCellStyle();//样式
IFont font1 = wb.CreateFont();//字体

font1.Color = HSSFColor.White.Index;//字体颜色
font1.Boldweight = (short)FontBoldWeight.Bold;//字体加粗样式
//style1.FillBackgroundColor = HSSFColor.WHITE.index;//GetXLColour(wb, LevelOneColor);// 设置图案色
style1.FillForegroundColor = HSSFColor.Green.Index;//GetXLColour(wb, LevelOneColor);// 设置背景色
style1.FillPattern = FillPattern.SolidForeground;
style1.SetFont(font1);//样式里的字体设置具体的字体样式
style1.Alignment = HorizontalAlignment.Center;//文字水平对齐方式
style1.VerticalAlignment = VerticalAlignment.Center;//文字垂直对齐方式
row.HeightInPoints = 25;
for (j = 0; j < dt.Columns.Count; j++)
{
columnValue = dt.Columns[j].ColumnName;
curLength = Encoding.Default.GetByteCount(columnValue.ToString());
maxLength = (maxLength < curLength ? curLength : maxLength);
int colounwidth = 256 * maxLength;
sheet.SetColumnWidth(j, colounwidth);
try
{
cell = row.CreateCell(j);//创建第0行的第j列
cell.CellStyle = style1;//单元格式设置样式

try
{
cell.SetCellType(CellType.String);
cell.SetCellValue(columnValue.ToString());
}
catch { }

}
catch
{
continue;
}
}
#endregion

#region 创建每一行
for (int i = startRow; i < ds.Tables[0].Rows.Count; i++)
{
dr = ds.Tables[0].Rows[i];
row = sheet.CreateRow(i + 1);//创建第i行
for (j = 0; j < dt.Columns.Count; j++)
{
columnValue = dr[j];
curLength = Encoding.Default.GetByteCount(columnValue.ToString());
maxLength = (maxLength < curLength ? curLength : maxLength);
int colounwidth = 256 * maxLength;
sheet.SetColumnWidth(j, colounwidth);
try
{
cell = row.CreateCell(j);//创建第i行的第j列
#region 插入第j列的数据
try
{
NpoiDataType dtype = datatypes[j];
switch (dtype)
{
case NpoiDataType.String:
{
cell.SetCellType(CellType.String);
cell.SetCellValue(columnValue.ToString());
} break;
case NpoiDataType.Datetime:
{
cell.SetCellType(CellType.String);
cell.SetCellValue(columnValue.ToString());
} break;
case NpoiDataType.Numeric:
{
cell.SetCellType(CellType.Numeric);
cell.SetCellValue(Convert.ToDouble(columnValue));
} break;
case NpoiDataType.Bool:
{
cell.SetCellType(CellType.Boolean);
cell.SetCellValue(Convert.ToBoolean(columnValue));
} break;
case NpoiDataType.Richtext:
{
cell.SetCellType(CellType.Formula);
cell.SetCellValue(columnValue.ToString());
} break;
}
}
catch
{
cell.SetCellType(CellType.String);
cell.SetCellValue(columnValue.ToString());
}
#endregion

}
catch
{
continue;
}
}
}
#endregion

//using (FileStream fs = new FileStream(@SaveFileName, FileMode.OpenOrCreate))//生成文件在服务器上
//{
// wb.Write(fs);
//}
//string SaveFileName = "output.xls";
using (FileStream fs = new FileStream(@SaveFileName, FileMode.OpenOrCreate, FileAccess.Write))//生成文件在服务器上
{
wb.Write(fs);
Console.WriteLine("文件保存成功!" + SaveFileName);
}

return true;
}
catch (Exception er)
{
Console.WriteLine("文件保存成功!" + SaveFileName);
return false;
}

}
#endregion

#region 从DataSet导出到MemoryStream流2007
/// <summary>
/// 从DataSet导出到MemoryStream流2007
/// </summary>
/// <param name="SaveFileName">文件保存路径</param>
/// <param name="SheetName">Excel文件中的Sheet名称</param>
/// <param name="ds">存储数据的DataSet</param>
/// <param name="startRow">从哪一行开始写入,从0开始</param>
/// <param name="datatypes">DataSet中的各列对应的数据类型</param>
public bool CreateExcel2007(string SaveFileName, string SheetName, DataSet ds, int startRow, params NpoiDataType[] datatypes)
{
string valueStr = "";
//int columnWidth = 200;
//try
//{
if (startRow < 0) startRow = 0;
XSSFWorkbook wb = new XSSFWorkbook();
ISheet sheet = wb.CreateSheet(SheetName);
//sheet.SetColumnWidth(0, 50 * 256);
//sheet.SetColumnWidth(1, 100 * 256);
IRow row;
ICell cell;
DataRow dr;
int j;
int maxLength = 0;
int curLength = 0;
object columnValue;
DataTable dt = ds.Tables[0];
if (datatypes.Length < dt.Columns.Count)
{
datatypes = new NpoiDataType[dt.Columns.Count];
for (int i = 0; i < dt.Columns.Count; i++)
{
string dtcolumntype = dt.Columns[i].DataType.Name.ToLower();
switch (dtcolumntype)
{
case "string": datatypes[i] = NpoiDataType.String;
break;
case "datetime": datatypes[i] = NpoiDataType.Datetime;
break;
case "boolean": datatypes[i] = NpoiDataType.Bool;
break;
case "double": datatypes[i] = NpoiDataType.Numeric;
break;
default: datatypes[i] = NpoiDataType.String;
break;
}
}
}

#region 创建表头
row = sheet.CreateRow(0);//创建第i行
ICellStyle style1 = wb.CreateCellStyle();//样式
IFont font1 = wb.CreateFont();//字体

font1.Color = HSSFColor.White.Index;//字体颜色
font1.Boldweight = (short)FontBoldWeight.Bold;//字体加粗样式
//style1.FillBackgroundColor = HSSFColor.WHITE.index;//GetXLColour(wb, LevelOneColor);// 设置图案色
//style1.FillForegroundColor = HSSFColor.Green.Index;//GetXLColour(wb, LevelOneColor);// 设置背景色
//style1.FillPattern = FillPattern.SolidForeground;
//style1.SetFont(font1);//样式里的字体设置具体的字体样式
//style1.Alignment = HorizontalAlignment.Center;//文字水平对齐方式
//style1.VerticalAlignment = VerticalAlignment.Center;//文字垂直对齐方式
//row.HeightInPoints = 25;
for (j = 0; j < dt.Columns.Count; j++)
{
columnValue = dt.Columns[j].ColumnName;
curLength = Encoding.Default.GetByteCount(columnValue.ToString());
maxLength = (maxLength < curLength ? curLength : maxLength);
int colounwidth = 256 * maxLength;
sheet.SetColumnWidth(j, colounwidth);
//try
//{
cell = row.CreateCell(j);//创建第0行的第j列
cell.CellStyle = style1;//单元格式设置样式

//try
//{
//cell.SetCellType(CellType.STRING);
cell.SetCellValue(columnValue.ToString());
//}
//catch { }

//}
//catch
//{
// continue;
//}
}
#endregion


#region 创建每一行
for (int i = startRow; i < ds.Tables[0].Rows.Count; i++)
{
dr = ds.Tables[0].Rows[i];
row = sheet.CreateRow(i + 1);//创建第i行
for (j = 0; j < dt.Columns.Count; j++)
{

columnValue = dr[j];
valueStr = columnValue + "_" + j;
curLength = Encoding.Default.GetByteCount(columnValue.ToString());
maxLength = (maxLength < curLength ? curLength : maxLength);
//int colounwidth = 256 * maxLength;

//sheet.SetColumnWidth(j, 100*256);
//sheet.SetColumnWidth(j, colounwidth);
//try
//{
cell = row.CreateCell(j);//创建第i行的第j列
#region 插入第j列的数据
//try
//{
NpoiDataType dtype = datatypes[j];
switch (dtype)
{
case NpoiDataType.String:
{
//cell.SetCellType(CellType.STRING);
cell.SetCellValue(columnValue.ToString());
} break;
case NpoiDataType.Datetime:
{
// cell.SetCellType(CellType.STRING);
cell.SetCellValue(columnValue.ToString());
} break;
case NpoiDataType.Numeric:
{
//cell.SetCellType(CellType.NUMERIC);
cell.SetCellValue(Convert.ToDouble(columnValue));
} break;
case NpoiDataType.Bool:
{
//cell.SetCellType(CellType.BOOLEAN);
cell.SetCellValue(Convert.ToBoolean(columnValue));
} break;
case NpoiDataType.Richtext:
{
// cell.SetCellType(CellType.FORMULA);
cell.SetCellValue(columnValue.ToString());
} break;
}
//}
//catch
//{
// //cell.SetCellType(HSSFCell.CELL_TYPE_STRING);
// cell.SetCellValue(columnValue.ToString());
//}
#endregion

//}
//catch
//{
// continue;
//}
}
}
#endregion

//using (FileStream fs = new FileStream(@SaveFileName, FileMode.OpenOrCreate))//生成文件在服务器上
//{
// wb.Write(fs);
//}
//string SaveFileName = "output.xlsx";
using (FileStream fs = new FileStream(SaveFileName, FileMode.Create, FileAccess.Write))//生成文件在服务器上
{
wb.Write(fs);
//Console.WriteLine("文件保存成功!" + SaveFileName);
}
return true;
//}
//catch (Exception er)
//{
// Console.WriteLine("valueStr=" + valueStr);
// Console.WriteLine("文件保存失败!" + SaveFileName);
// return false;
//}

}
#endregion

private short GetXLColour(HSSFWorkbook workbook/*, System.Drawing.Color SystemColour*/)
{
short s = 0;
/*
HSSFPalette XlPalette = workbook.GetCustomPalette();
HSSFColor XlColour = XlPalette.FindColor(SystemColour.R, SystemColour.G, SystemColour.B);
if (XlColour == null)
{
if (NPOI.HSSF.Record.PaletteRecord.STANDARD_PALETTE_SIZE < 255)
{
if (NPOI.HSSF.Record.PaletteRecord.STANDARD_PALETTE_SIZE < 64)
{
//NPOI.HSSF.Record.PaletteRecord.STANDARD_PALETTE_SIZE= 64;
//NPOI.HSSF.Record.PaletteRecord.STANDARD_PALETTE_SIZE += 1;
XlColour = XlPalette.AddColor(SystemColour.R, SystemColour.G, SystemColour.B);
}
else
{
XlColour = XlPalette.FindSimilarColor(SystemColour.R, SystemColour.G, SystemColour.B);
}
s = XlColour.GetIndex();
}
}
else
s = XlColour.GetIndex();*/
return s;
}

#region 读Excel-根据NpoiDataType创建的DataTable列的数据类型
/// <summary>
/// 读Excel-根据NpoiDataType创建的DataTable列的数据类型
/// </summary>
/// <param name="datatype"></param>
/// <returns></returns>
private Type GetDataTableType(NpoiDataType datatype)
{
Type tp = typeof(string);//Type.GetType("System.String")
switch (datatype)
{
case NpoiDataType.Bool:
tp = typeof(bool);
break;
case NpoiDataType.Datetime:
tp = typeof(DateTime);
break;
case NpoiDataType.Numeric:
tp = typeof(double);
break;
case NpoiDataType.Error:
tp = typeof(string);
break;
case NpoiDataType.Blank:
tp = typeof(string);
break;
}
return tp;
}
#endregion

#region 读Excel-得到不同数据类型单元格的数据
/// <summary>
/// 读Excel-得到不同数据类型单元格的数据
/// </summary>
/// <param name="datatype">数据类型</param>
/// <param name="row">数据中的一行</param>
/// <param name="column">哪列</param>
/// <returns></returns>
private object GetCellData(NpoiDataType datatype, IRow row, int column)
{
if (row.GetCell(column) == null) return string.Empty;
switch (datatype)
{
case NpoiDataType.String:
try { return row.GetCell(column).StringCellValue; }
catch { return string.Empty; }
case NpoiDataType.Bool:
try { return row.GetCell(column).BooleanCellValue; }
catch { return row.GetCell(column).StringCellValue; }
case NpoiDataType.Datetime:
try { return row.GetCell(column).DateCellValue; }
catch { return row.GetCell(column).StringCellValue; }
case NpoiDataType.Numeric:
try { return row.GetCell(column).NumericCellValue; }
catch { return row.GetCell(column).StringCellValue; }
case NpoiDataType.Richtext:
try { return row.GetCell(column).RichStringCellValue; }
catch { return row.GetCell(column).StringCellValue; }
case NpoiDataType.Error:
try { return row.GetCell(column).ErrorCellValue; }
catch { return row.GetCell(column).StringCellValue; }
case NpoiDataType.Blank:
try { return row.GetCell(column).StringCellValue; }
catch { return string.Empty; }
default: return string.Empty;
}
}
/// <summary>
/// 读Excel-得到不同数据类型单元格的数据
/// </summary>
/// <param name="datatype">数据类型</param>
/// <param name="row">数据中的一行</param>
/// <param name="column">哪列</param>
/// <remarks>只识别字符串和数字,以二者中指定类型为优先</remarks>
private object GetCellDataStrNum(NpoiDataType datatype, IRow row, int column)
{
if (row.GetCell(column) == null) return string.Empty;
switch (datatype)
{
case NpoiDataType.String:
try { return row.GetCell(column).StringCellValue; }
catch
{
try { return row.GetCell(column).NumericCellValue; }
catch { return string.Empty; }
}
case NpoiDataType.Numeric:
try { return row.GetCell(column).NumericCellValue; }
catch
{
try { return row.GetCell(column).StringCellValue; }
catch { return string.Empty; }
}
case NpoiDataType.Blank:
try { return row.GetCell(column).StringCellValue; }
catch { return string.Empty; }
default: return string.Empty;
}
}
#endregion

#region 获取单元格数据类型
/// <summary>
/// 获取单元格数据类型
/// </summary>
/// <param name="hs"></param>
/// <returns></returns>
private NpoiDataType GetCellDataType(ICell hs)
{
NpoiDataType dtype;
DateTime t1;
//string cellvalue = "";
if (hs == null) dtype = NpoiDataType.String;
else
{
switch (hs.CellType)
{
case CellType.Blank:
dtype = NpoiDataType.String;
//cellvalue = hs.StringCellValue;
break;
case CellType.Boolean:
dtype = NpoiDataType.Bool;
break;
case CellType.Numeric:
dtype = NpoiDataType.Numeric;
//cellvalue = hs.NumericCellValue.ToString();
break;
case CellType.String:
dtype = NpoiDataType.String;
//cellvalue = hs.StringCellValue;
break;
case CellType.Error:
dtype = NpoiDataType.Error;
break;
case CellType.Formula:
default:
dtype = NpoiDataType.String;
break;
}
}
//if (cellvalue != "" && DateTime.TryParse(cellvalue, out t1)) dtype = NpoiDataType.Datetime;
return dtype;
}
#endregion


public List<ISheet> GetSheets(string FileName)
{
List<ISheet> list = new List<ISheet>();
using (FileStream stream = new FileStream(@FileName, FileMode.Open, FileAccess.Read))
{
IWorkbook workbook = WorkbookFactory.Create(stream);//使用接口,自动识别excel2003/2007格式
for (int i = 0; i < workbook.NumberOfSheets; i++)
{
ISheet s = workbook.GetSheetAt(i);
if (s != null) list.Add(s);
}
}
return list;
}
public int GetSheets(string FileName, out List<int> listIndex, out List<string> listName, out List<int> listRowCount)
{
List<ISheet> list = GetSheets(FileName);
listIndex = new List<int>();
listName = new List<string>();
listRowCount = new List<int>();
for (int i =0;i<list.Count;i++)
{
listIndex.Add(i);
listName.Add(list[i].SheetName);
listRowCount.Add(list[i].PhysicalNumberOfRows - 2);
}
return list.Count;
}
public int GetSheetIdByName(string FileName, string SheetName)
{
using (FileStream stream = new FileStream(@FileName, FileMode.Open, FileAccess.Read))
{
IWorkbook workbook = WorkbookFactory.Create(stream);//使用接口,自动识别excel2003/2007格式
ISheet sheet = workbook.GetSheet(SheetName);
if (sheet == null) return -1;
else
{
for (int i = 0; i < workbook.NumberOfSheets; i++)
{
if (workbook.GetSheetAt(i) == null && workbook.GetSheetAt(i).SheetName == SheetName)
return i;
}
}
}
return -1;
}


/// <summary>
/// 获取csv文件中数据,并将数据导入DataTable中
/// </summary>
/// <param name="FilePath"></param>
/// <returns></returns>
public DataTable GetDataTableFromCSV(string FilePath, bool HasTableHead = true)
{
string strpath = FilePath; //csv文件的路径
try
{
DataTable table = new DataTable();
int intColCount = 0;
bool hasHead = HasTableHead;

DataColumn dataCol;
string strLine;
string[] strLineAny;
StreamReader mysr = new StreamReader(strpath, System.Text.Encoding.Default);

while (!string.IsNullOrEmpty(strLine = mysr.ReadLine()))
{
if (strLine.IndexOf('#') == 0) continue;
strLineAny = strLine.Split(new char[] { ',' });
if (hasHead)
{
//列头
hasHead = false;
intColCount = strLineAny.Length;
int col = 0;
for (int i = 0; i < strLineAny.Length; i++)
{
col = i + 1;
dataCol = new DataColumn(strLineAny[i].Trim());
table.Columns.Add(dataCol);
}
}
else
{
//填充数据
DataRow dataRow = table.NewRow();
for (int i = 0; i < intColCount; i++)
{
dataRow[i] = strLineAny[i].Trim('\"').Trim();
}
table.Rows.Add(dataRow);
}
}
return table;

}
catch (Exception ex)
{
return null;
}
}


#region 测试代码


#endregion
}

#region 枚举(Excel单元格数据类型)
/// <summary>
/// 枚举(Excel单元格数据类型)
/// </summary>
public enum NpoiDataType
{
/// <summary>
/// 字符串类型-值为1
/// </summary>
String,
/// <summary>
/// 布尔类型-值为2
/// </summary>
Bool,
/// <summary>
/// 时间类型-值为3
/// </summary>
Datetime,
/// <summary>
/// 数字类型-值为4
/// </summary>
Numeric,
/// <summary>
/// 复杂文本类型-值为5
/// </summary>
Richtext,
/// <summary>
/// 空白
/// </summary>
Blank,
/// <summary>
/// 错误
/// </summary>
Error
}
#endregion

 

 

public class MemoryFileStream : MemoryStream
{
public string FileNm { get; set; }

public MemoryFileStream(string paraFileNm)
{
FileNm = paraFileNm;
}
}
}

 

//调用

    DataSet ds = ExcelUtil.GetInstance().ReadExcelAllString(fileurl, sheetId, 1);//文件路径,表格标识

posted on 2017-09-29 16:20  金木盐  阅读(79)  评论(0)    收藏  举报

导航