【问题标题】:MVC 4 Uploading Excel file to databaseMVC 4 将 Excel 文件上传到数据库
【发布时间】:2017-07-18 10:17:53
【问题描述】:

遇到这个问题 “HttpRequest”不包含“Files”的定义,并且找不到接受“HttpRequest”类型的第一个参数的扩展方法“Files”(您是否缺少 using 指令或程序集引用?)

不知道如何转换这一行的日期

user.StudentDob = workSheet.Cells[rowIterator, 6].Value.ToString();

有人可以帮忙吗?正在尝试上传 excel 文件进行阅读。

这是我的控制器

public ActionResult Upload(FormCollection formCollection)
    {
        if (Request != null)
        {
            HttpPostedFileBase file = Request.Files["UploadedFile"];
            if ((file != null) && (file.ContentLength > 0) && !string.IsNullOrEmpty(file.FileName))
            {
                string fileName = file.FileName;
                string fileContentType = file.ContentType;
                byte[] fileBytes = new byte[file.ContentLength];
                var data = file.InputStream.Read(fileBytes, 0, Convert.ToInt32(file.ContentLength));
                var usersList = new List<Student>();
                using (var package = new ExcelPackage(file.InputStream))
                {
                    var currentSheet = package.Workbook.Worksheets;
                    var workSheet = currentSheet.First();
                    var noOfCol = workSheet.Dimension.End.Column;
                    var noOfRow = workSheet.Dimension.End.Row;

                    for (int rowIterator = 2; rowIterator <= noOfRow; rowIterator++)
                    {
                        var user = new Student();
                        user.StudentId = workSheet.Cells[rowIterator, 1].Value.ToString().FirstOrDefault();
                        user.StudentNric = workSheet.Cells[rowIterator, 2].Value.ToString();
                        user.StudentName = workSheet.Cells[rowIterator, 3].Value.ToString();
                        user.StudentContact = workSheet.Cells[rowIterator, 4].Value.ToString().FirstOrDefault();
                        user.StudentEmail = workSheet.Cells[rowIterator, 5].Value.ToString();
                        user.StudentDob = workSheet.Cells[rowIterator, 6].Value.ToString();
                        user.FirstLogin = workSheet.Cells[rowIterator, 7].Value.ToString();
                        usersList.Add(user);
                    }
                }
            }
        }
        return View("Index");
    }

这是我的模特

public partial class Student
{
    public int StudentId { get; set; }
    public string StudentNric { get; set; }
    public string StudentName { get; set; }
    public int StudentContact { get; set; }
    public string StudentEmail { get; set; }
    public DateTime StudentDob { get; set; }
    public string FirstLogin { get; set; }
}

【问题讨论】:

    标签: excel asp.net-mvc-4 file-upload


    【解决方案1】:

    您必须将单元格中收到的字符串显式转换为 DateTime 类型,可能使用与 Excel 文件格式匹配的格式字符串。例如,如果 excel 中的日期类似于 2017-07-18,您将不得不这样做

    user.StudentDob = DateTime.ParseExact(
                                          workSheet.Cells[rowIterator, 6].Value.ToString(),
                                          "yyyy-MM-dd",
                                          CultureInfo.InvariantCulture);
    

    【讨论】:

    • 'HttpRequest' 的错误如何不包含'Files' 的定义,并且找不到接受'HttpRequest' 类型的第一个参数的扩展方法'Files'。
    猜你喜欢
    • 2013-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多