Member 13284521 Ответов: 2

Могу ли я просмотреть лист excel с большим количеством записей в нем ASP.NET?


ниже приведен код работы, но если я хочу просмотреть лист excel с записью 1000000, какие изменения нужны ???

Что я уже пробовал:

я пробую этот код
protected void btnUpload_Click(object sender, EventArgs e)
    {
        if (FileUpload1.HasFile)
        {
            string FileName = Path.GetFileName(FileUpload1.PostedFile.FileName);
            string Extension = Path.GetExtension(FileUpload1.PostedFile.FileName);
            string FolderPath = ConfigurationManager.AppSettings["FolderPath"];

            string FilePath = Server.MapPath(FolderPath + FileName);
            FileUpload1.SaveAs(FilePath);
            Import_To_Grid(FilePath, Extension, rbHDR.SelectedItem.Text);
        }

    }

    private void Import_To_Grid(string FilePath, string Extension, string isHDR)
   {
    string conStr="";
    switch (Extension)
    {
        case ".xls": //Excel 97-03
            conStr = ConfigurationManager.ConnectionStrings["Excel03ConString"]
                     .ConnectionString;
            break;
        case ".xlsx": //Excel 07
            conStr = ConfigurationManager.ConnectionStrings["Excel07ConString"]
                      .ConnectionString;
            break;
    }
    conStr = String.Format(conStr, FilePath, isHDR);
    OleDbConnection connExcel = new OleDbConnection(conStr);
    OleDbCommand cmdExcel = new OleDbCommand();
    OleDbDataAdapter oda = new OleDbDataAdapter();
    DataTable dt = new DataTable();
    cmdExcel.Connection = connExcel;
 
    //Get the name of First Sheet
    connExcel.Open();
    DataTable dtExcelSchema;
    dtExcelSchema = connExcel.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
    string SheetName = dtExcelSchema.Rows[0]["TABLE_NAME"].ToString();
    connExcel.Close();
 
    //Read Data from First Sheet
    connExcel.Open();
    cmdExcel.CommandText = "SELECT * From [" + SheetName + "]";
    oda.SelectCommand = cmdExcel;
    oda.Fill(dt);
    connExcel.Close();
 
    //Bind Data to GridView
    GridView1.Caption = Path.GetFileName(FilePath);
    GridView1.DataSource = dt;
    GridView1.DataBind();
   
    }

    protected void PageIndexChanging(object sender, GridViewPageEventArgs e)
  {
    string FolderPath = ConfigurationManager.AppSettings["FolderPath"] ;
    string FileName = GridView1.Caption;
    string Extension = Path.GetExtension(FileName);
    string FilePath = Server.MapPath(FolderPath + FileName);
 
    Import_To_Grid(FilePath, Extension, rbHDR.SelectedItem.Text); 
    GridView1.PageIndex = e.NewPageIndex;
    GridView1.DataBind(); 
  }

2 Ответов

Рейтинг:
1

RickZeeland

Вы можете использовать виртуальная прокрутка, смотрите ответ здесь: виртуальная прокрутка в asp.net GridView в[^]


Рейтинг:
1

Patrice T

Не используйте Excel 2003, так как он ограничен 65 тысячами строк.
Excel 2007 ограничен 1 м строками.
Excel-история строк и столбцов-Office Watch[^]


0x01AA

На самом деле это был не ответ, а скорее комментарий. Какое это имеет отношение к вопросу?
Кстати: никакого голосования с моей стороны, только в случае, если :)

Patrice T

ОП хочет сохранить 1М строк в файле excel.
Поскольку формат файла Excel 2003 может обрабатывать только 65 тысяч строк, OP должен удалить формат файла excel 2003. Это изменение я вижу, так как ОП не заявил о другой проблеме.
Ни один голос меня не устраивает.

0x01AA

Извините, теперь я понимаю. Мои извинения и 5.

Patrice T

Спасибо