<%:Styles.Render("~/Content/bootstrap-table")%>
<%:Styles.Render("~/forms/artDialog/skins/default2.css")%>
<%:Styles.Render("../CSS/fileinput.min.css")%>
<%:Scripts.Render("~/bundles/bootstrap-table")%>
<%:Scripts.Render("~/bundles/bootstrap-dialog")%> <%:Scripts.Render("../JS/fileinput.min.js")%> <%:Scripts.Render("~/forms/artDialog/artDialog.js")%>
<div class="col-md-1 col-sm-2 pull-right" style="margin-right: 20px">
<a class="btn btn-warning" data-toggle='modal' data-target='#importExecl'><i class="fa fa-upload"></i> 导入数据</a>
</div>
<!-- 模态框2(Modal) -->
<div class="modal fade" id="importExecl" data-target="" tabindex="-1" role="dialog" aria-labelledby="myModalLabel2" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">
×
</button>
<h4 class="modal-title" id="H2">Execl文件上传
</h4>
</div>
<div class="box-body">
<div class="modal-body" id="liuchengbody2">
<input id="impExecl" name="impExecl" type="file" data-show-preview="false">
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">
关闭
</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal -->
</div>
$(document).ready(function () {
initExeclInput("impExecl", "Project.ashx?action=ImportProject&rnd=" + Math.random()); })
function initExeclInput(ctrlName, uploadUrl) {
var control = $('#' + ctrlName);
control.fileinput({
uploadAsync: true,
language: 'zh',
uploadUrl: uploadUrl,
allowedFileExtensions: ['xls', 'xlsx'],
maxFileCount: 1,
maxFileSize: 0,
showCaption: true,
showUpload: true,
showRemove: true,
showClose: true,
previewFileIcon: "<i class='glyphicon glyphicon-king'></i>",
}).on('fileuploaded', function (event, data, previewId, index) {
var res = data.response;
if (res.result == "1") {
alert("文件上传成功!");
} else {
alert("文件上传失败!");
}
});
}
public void ImportProject(HttpContext context)
{
Dictionary<string, object> dic = new Dictionary<string, object>();
HttpPostedFile file = context.Request.Files["impExecl"];
string savepath = "~/";
string day = DateTime.Now.ToString("yyyy-MM-dd");
string Pfpath = context.Server.MapPath(savepath) + "UploadFile//StudyTour//" + day;
try
{
if (!Directory.Exists(Pfpath))
{
Directory.CreateDirectory(Pfpath);
}
savepath = Pfpath + "//" + DateTime.Now.ToString("yyyyMMddHHmmss") + file.FileName.Substring(file.FileName.IndexOf('.'));
file.SaveAs(savepath);
file.InputStream.Close();
file.InputStream.Dispose();
DataTable dt = NPOIExcelHelper.ImportExecl(savepath);
TourStudyProject model = new TourStudyProject();
for (int i = 0; i < dt.Rows.Count; i++)
{
DataRow dr = dt.Rows[i];
if (!dr.IsNull("ProjectNo"))
{
#region 模块信息写入
model.ProjectNo = dr["ProjectNo"].ToString();
model.ProjectName = dr["ProjectName"].ToString();
int result = model.Insert();
#endregion
}
}
dic.Add("result", "1");
}
catch (Exception ex)
{
Unionstars.Trace.Log.WriteLine(ex.ToString());
}
string json = Newtonsoft.Json.JsonConvert.SerializeObject(dic);
context.Response.ContentType = "json/plain";
context.Response.Clear();
context.Response.Write(json);
context.Response.End();
}
NPOIExcelHelper.cs类下方法
public static DataTable ImportExecl(string strFileName)
{
DataTable dt = new DataTable();
HSSFWorkbook hssfworkbook;
using (FileStream file = new FileStream(strFileName, FileMode.Open, FileAccess.Read))
{
hssfworkbook = new HSSFWorkbook(file);
}
HSSFSheet sheet = (HSSFSheet)hssfworkbook.GetSheetAt(0);
System.Collections.IEnumerator rows = sheet.GetRowEnumerator();
HSSFRow headerRow = (HSSFRow)sheet.GetRow(1);
int cellCount = headerRow.LastCellNum;
for (int j = 0; j < cellCount; j++)
{
HSSFCell cell = (HSSFCell)headerRow.GetCell(j);
dt.Columns.Add(cell.ToString());
}
for (int i = (sheet.FirstRowNum + 2); i <= sheet.LastRowNum; i++)
{
HSSFRow row = (HSSFRow)sheet.GetRow(i);
DataRow dataRow = dt.NewRow();
if (row != null)
{
for (int j = row.FirstCellNum; j < cellCount; j++)
{
if (row.GetCell(j) != null)
dataRow[j] = row.GetCell(j).ToString();
}
dt.Rows.Add(dataRow);
}
}
return dt;
}