ASP.NET MVCでのExcelの操作
ASP.NET MVCでのExcelの操作
Excelデータのインポートとエクスポート
NPOI、NPOIはxls、doc、pptドキュメントを読み取るためのPOIプロジェクトに由来し、POIはJavaプロジェクトである、後にあるためである.Netの市場は、POIを移植する.Net上; LinqToExcel、このライブラリファイルは使いやすくて、実用的で、操作が便利だと感じて、その上Linqのクエリーの特性を結びつけて、excelバージョンは03を支持するだけではなくて、その上wps表さえ(接尾辞名.et)を支持して、csvファイルは更に話の下にありません; OLEDBは、OLEDB方式でEXCELを読み取る速度が非常に速い.しかし、Excelのデータ量が多い場合.メモリが非常に消費され、メモリが不足するとメモリオーバーフローの異常が放出され、インストールが必要になります([AccessDatabaseEngine]; Microsoft.Office.Interop.Excel、まずサーバーはofficeソフトウェアをインストールする必要があります;
まずDLLをダウンロードし、リファレンスを追加します. using NPOI.SS.UserModel; using NPOI.HSSF.UserModel; using NPOI.XSSF.UserModel;
Excelデータのインポートとエクスポート
Excelデータのインポートとエクスポート操作、本文はASP.NET MVCは、自分のために記録を作ります.
Excelデータのインポート
Excelデータのインポート方法はいろいろありますが、使用した方法についてまとめます.すべての方法の前提は、まずExcelをサーバ側に保存することです.この方法は簡単です.ファイルの保存、戻る方法です.//
<form action="" method="post" enctype="multipart/form-data">
<input name="myfile" type="file" accept="application/vnd.ms-excel">
</form>
//
HttpPostedFileBase file = Request.Files["myfile"];
file.SaveAs(" .xlsx");//
//
<form action="" method="post" enctype="multipart/form-data">
<input name="myfile" type="file" accept="application/vnd.ms-excel">
</form>
//
HttpPostedFileBase file = Request.Files["myfile"];
file.SaveAs(" .xlsx");//
NPOI
まずDLLをダウンロードし、リファレンスを追加します.
DataTable dt = new DataTable();
IWorkbook workbook = null; // IWorkbook
string extension = System.IO.Path.GetExtension(fullPath);
FileStream fileStream = new FileStream(fullPath,FileMode.Open,FileAccess.Read);
if (extension ==".xlsx") // 2007
{
workbook = new XSSFWorkbook(fileStream); //xlsx workbook
}
else if (extension ==".xls") // 2003
{
workbook = new HSSFWorkbook(fileStream); //xls workbook
}
ISheet sheet = workbook.GetSheetAt(0); //
IRow row;//
for (int i = 0; i < sheet.LastRowNum; i++) //
{
row = sheet.GetRow(i); //row i
if (row != null)
{
if (row.LastCellNum >= 3)
{
DataRow rows = dt.NewRow();
rows[0] = row.GetCell(0).ToString();
rows[1] = row.GetCell(1).ToString();
dt.Rows.Add(rows);
}
}
}
fileStream.Close();
System.IO.File.Delete(fullPath);
return dt;
LinqToExcel
//
public List<Admin_Login> GetImportData(string fileName)
{
List<Admin_Login> List = new List<Admin_Login>();
var excelFile = new ExcelQueryFactory(fileName);
//
excelFile.AddMapping<Admin_Login>(x => x.UserName, "UserName");
excelFile.AddMapping<Admin_Login>(x => x.Power, "Power");
excelFile.AddMapping<Admin_Login>(x => x.CreateTime, "CreateTime");
//SheetName
var excelContent = excelFile.Worksheet<Admin_Login>(0);
int rowIndex = 1;
//
foreach (var row in excelContent)
{
var model = new Admin_Login();
model.UserName = row.UserName;
model.Power = row.Power;
model.CreateTime = row.CreateTime;
List.Add(model);
rowIndex += 1;
}
return List;
}
OLEDB
public static DataSet Get_ExcelSheet_Source(string P_str_Excel, string P_str_SheetName)
{
DataSet myds = new DataSet();//
//--HDR = Yes;” , ,
//-----"IMEX=1;” “ ” 。
//---------Excel 8.0 Excel2000 ,Excel5.0 Excel97。
string P_str_OledbCon = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + P_str_Excel + ";Extended Properties=Excel 8.0;";
OleDbConnection oledbcon = new OleDbConnection(P_str_OledbCon);// Oledb
string P_str_ExcelSql = "";// , Excel
OleDbDataAdapter oledbda = null;// Oledb
P_str_ExcelSql = string.Format("select * from [{0}]", P_str_SheetName);// Excel
oledbda = new OleDbDataAdapter(P_str_ExcelSql, P_str_OledbCon);// Excel
oledbda.Fill(myds, P_str_SheetName);//
return myds;
}