// GET: UploadExcel
public ActionResult TestExcel(string filePath)
{
return View();
}
[HttpPost]
public ActionResult TestExcel(FormCollection form)
{
HttpPostedFileBase file = Request.Files[0];
string path = Server.MapPath("\\Models");
path += "\\" + file.FileName;
file.SaveAs(path);
ImportExcelFile(path);
return View();
}
/// <summary>
/// 根据Excel列类型获取列的值
/// </summary>
/// <param name="cell">Excel列</param>
/// <returns></returns>
private static string GetCellValue(ICell cell)
{
if (cell == null)
return string.Empty;
switch (cell.CellType)
{
case CellType.Blank:
return string.Empty;
case CellType.Boolean:
return cell.BooleanCellValue.ToString();
case CellType.Error:
return cell.ErrorCellValue.ToString();
case CellType.Numeric:
case CellType.Unknown:
default:
return cell.ToString();
case CellType.String:
return cell.StringCellValue;
case CellType.Formula:
try
{
HSSFFormulaEvaluator e = new HSSFFormulaEvaluator(cell.Sheet.Workbook);
e.EvaluateInCell(cell);
return cell.ToString();
}
catch
{
return cell.NumericCellValue.ToString();
}
}
}
/// <summary>
/// Excel导入
/// </summary>
/// <param name="filePath"></param>
/// <returns></returns>
public DataTable ImportExcelFile(string filePath)
{
HSSFWorkbook hssfworkbook;
#region//初始化信息
try
{
using (FileStream file = new FileStream(filePath, FileMode.Open, FileAccess.Read))
{
hssfworkbook = new HSSFWorkbook(file);
}
}
catch (Exception e)
{
throw e;
}
#endregion
ISheet sheet = hssfworkbook.GetSheetAt(3);
DataTable table = new DataTable();
IRow headerRow = sheet.GetRow(0);//第一行为标题行
int cellCount = headerRow.LastCellNum;//LastCellNum = PhysicalNumberOfCells
int rowCount = sheet.LastRowNum - 2;
for (int i = headerRow.FirstCellNum; i < cellCount; i++)
{
DataColumn column = new DataColumn(headerRow.GetCell(i).StringCellValue);
table.Columns.Add(column);
}
for (int i = (sheet.FirstRowNum + 4); i <= rowCount; i++)
{
IRow row = sheet.GetRow(i);
DataRow dataRow = table.NewRow();
if (row != null)
{
for (int j = row.FirstCellNum; j < cellCount; j++)
{
if (row.GetCell(j) != null)
dataRow[j] = GetCellValue(row.GetCell(j));
}
}
table.Rows.Add(dataRow);
}
using (SqlBulkCopy abc = new SqlBulkCopy(SqlConnectionFactory.Connection))
{
abc.BatchSize = table.Rows.Count;
abc.BulkCopyTimeout = 11;
abc.DestinationTableName = "ExcelTable";
for (int i = 0; i < table.Columns.Count; i++)
{
abc.ColumnMappings.Add(table.Columns[i].ColumnName, i);
}
abc.WriteToServer(table);
}
return table;
}
public string ExcelSelect()
{
using (SqlConnection con = SqlConnectionFactory.Connection)
{
string sql = "select Tnumber, Tname, Depter, Bdate, Beonduty, GetoffWork, BeondutyTwo, GetoffWorkTwo, Belate, Leaver, Absenceoftime, Total, BText from ExcelTable";
var list = con.Query(sql);
return JsonConvert.SerializeObject(list);
}
}
public string Test(TestModel test, string url)
{
HttpClient httpClient = new HttpClient();
var list = httpClient.GetStringAsync(url);
string bb = list.Result;
return "";
}
public string A2(TestModel test)
{
HttpClient client = new HttpClient();
var aaa = client.GetStringAsync("https://www.layui.com/test/table/demo1.json");
var bbb = aaa.Result;
Stopwatch stopWatch = new Stopwatch();
stopWatch.Start();
var json = JsonConvert.DeserializeObject<dynamic>(bbb);
for (int i = 0; i < json.data.Count; i++)
{
test.username = json.data[i].username;
test.email = json.data[i].email;
test.sex = json.data[i].sex;
test.city = json.data[i].city;
test.sign = json.data[i].sign;
test.ip = json.data[i].ip;
test.logins = json.data[i].logins;
test.joinTime = json.data[i].joinTime;
string sql = "insert into sssss values(@username,@email,@sex,@city,@sign,@experience,@ip,@logins,@joinTime)";
using (SqlConnection con = SqlConnectionFactory.Connection)
{
con.Execute(sql, test);
}
Console.WriteLine(Convert.ToDateTime(json.data[i].joinTime));
}
stopWatch.Stop();
TimeSpan ts = stopWatch.Elapsed;
string elapsedTime = String.Format("{0:00}:{1:00}:{2:00}.{3:00}",
ts.Hours, ts.Minutes, ts.Seconds,
ts.Milliseconds / 10);
Console.WriteLine("RunTime " + elapsedTime);
return bbb;
}
public string Cast(string url)
{
var test = HttpClientHelp.GetApi("get", url, "");
var list = Newtonsoft.Json.JsonConvert.DeserializeObject<TestDataModel>(test);
string sql = "select * from sssss";
DataTable dt = DBhelper.QuerySql(sql);
using (SqlBulkCopy abc = new SqlBulkCopy(SqlConnectionFactory.Connection))
{
abc.BatchSize = dt.Rows.Count;
abc.BulkCopyTimeout = 10;
abc.DestinationTableName = "sssss";
for (int i = 0; i < dt.Columns.Count; i++)
{
abc.ColumnMappings.Add(dt.Columns[i].ColumnName, i);
}
abc.WriteToServer(dt);
}
return "";
}
[HttpGet]
public string tests(string url)
{
var testtt = HttpClientHelp.GetApi("get", url, "");
var list = Newtonsoft.Json.JsonConvert.DeserializeObject<TestDataModel>(testtt);
var test = HttpClientHelp.GetApi("post", url, list);
DataTable table = new DataTable();
return testtt;
}
[HttpGet]
public string test(string url, TestModel m)
{
if (url.StartsWith("https"))
System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls;
HttpClient httpClient = new HttpClient();
httpClient.DefaultRequestHeaders.Accept.Add(
new MediaTypeWithQualityHeaderValue("application/json"));
HttpResponseMessage response = httpClient.GetAsync(url).Result;
if (response.IsSuccessStatusCode)
{
string result = response.Content.ReadAsStringAsync().Result;
var listto = Newtonsoft.Json.JsonConvert.DeserializeObject<TestDataModel>(result);
foreach (var item in listto.data)
{
m.id = item.id;
m.username = item.username;
m.email = item.email;
m.sex = item.sex;
m.city = item.city;
m.sign = item.sign;
m.experience = item.experience;
m.ip = item.ip;
m.logins = item.logins;
m.joinTime = item.joinTime;
string sql = "insert into sssss values(@username,@email,@sex,@city,@sign,@experience,@ip,@logins,@joinTime)";
using (SqlConnection con = SqlConnectionFactory.Connection)
{
con.Execute(sql, m);
}
}
return result;
}
return null;
}
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Index</title>
<script src="~/Scripts/jquery-3.3.1.js"></script>
</head>
<body>
<div>
<form action="/Home/TestExcel" enctype="multipart/form-data" method="post">
<text>选择上传文件:(工作表名为“Sheet1”,“电脑号”在A1单元格。)</text>
<input name="file" type="file" id="file" />
<input type="submit" name="Upload" value="批量导入第一批电脑派位名册" />
</form>
<table>
<thead>
<tr>
<th>工号</th>
<th>姓名</th>
<th>所属部门</th>
<th>日期</th>
<th>上班</th>
<th>下班</th>
<th>上班</th>
<th>下班</th>
<th>下班</th>
<th>迟到时间(分钟)</th>
<th>早退时间(分钟)</th>
<th>缺勤时间(分钟)</th>
<th>合计(分钟)</th>
<th>备注</th>
</tr>
</thead>
<tbody id="tb"></tbody>
</table>
</div>
<script>
$(document).ready(function () {
$.ajax({
url: '/Home/ExcelSelect',
dataType: 'json',
type: 'get',
success: function (data) {
$(data).each(function () {
var tr = '<tr>'
+ '<td>' + this.Tnumber + '</td>'
+ '<td>' + this.Tname + '</td>'
+ '<td>' + this.Depter + '</td>'
+ '<td>' + this.Bdate + '</td>'
+ '<td>' + this.Beonduty + '</td>'
+ '<td>' + this.GetoffWork + '</td>'
+ '<td>' + this.BeondutyTwo + '</td>'
+ '<td>' + this.GetoffWorkTwo + '</td>'
+ '<td>' + this.Belate + '</td>'
+ '<td>' + this.Leaver + '</td>'
+ '<td>' + this.Absenceoftime + '</td>'
+ '<td>' + this.Total + '</td>'
+ '<td>' + this.BText + '</td>'
+ '</tr>';
$("#tb").append(tr);
})
}
})
})
</script>
</body>
</html>