Запрос и отображение данных Excel с помощью ASP.NET, ADO.NET и Visual C# .NET
В этой статье показано, как запрашивать и отображать данные с листа Excel через страницу ASP.NET (.aspx) с помощью Visual C# .NET.
Исходная версия продукта: ASP.NET
Исходный номер базы знаний: 306572
Создание примера листа Excel
Запустите Microsoft Excel и создайте новый лист.
Добавьте следующие сведения на новый лист, чтобы создать базу данных Excel:
Номер строки A Б 1 FirstName LastName 2 Скотт Епископ 3 Кэти Иордания Примечание.
Хотя данные начинаются с ячейки A1 в этом примере, эти данные можно добавить в любые смежные ячейки на листе.
Выделите строки и столбцы, в которых есть данные.
В меню Вставка наведите указатель мыши на пункт Имя и нажмите кнопку Определить.
В текстовом поле Имена в книге введитеmyRange1 и нажмите кнопку ОК.
В меню Файл выберите пункт Сохранить. В списке Сохранить в выберите корневой каталог веб-сервера (как правило,
C:\InetPub\Wwwroot\
). В текстовом поле Имя файла введите ExcelData.xls. Нажмите кнопку OK.В меню Файл выберите пункт Выход.
Создание примера ASP.NET с помощью Visual C# .NET
В этом примере кода показано, как запрашивать и отображать информацию на листе Excel. В следующем коде используется лист, созданный в предыдущем разделе.
Откройте Microsoft Visual Studio .NET. Отобразится интегрированная среда разработки (IDE) Visual Studio .NET.
В меню Файл выберите пункт Создать и затем пункт Проект.
В диалоговом окне Новый проект в разделе Типы проектов щелкните Проекты Visual C#. В разделе Шаблоны щелкните ASP.NET веб-приложение.
В диалоговом окне Новый проект найдите текстовые поля Имя и Расположение .
Примечание.
- Текстовое поле Имя недоступно (оно отображается неактивным или неактивным). Текстовое поле Расположение содержит текст (или аналогичный).
http://localhost/WebApplication1
- Замените текст в текстовом поле
http://localhost/ExcelCSTest
Расположение на и нажмите кнопку ОК. Создается новый проект, который включает веб-форму с именем WebForm1.aspx.
- Текстовое поле Имя недоступно (оно отображается неактивным или неактивным). Текстовое поле Расположение содержит текст (или аналогичный).
В интегрированной среде разработки Visual Studio .NET найдите окно Обозреватель решений. Если вы не можете найти его, щелкните Обозреватель решений в меню Вид.
В Обозреватель решений щелкните правой кнопкой мыши WebForm1.aspx и выберите пункт Просмотреть Designer, чтобы отобразить конструктор для внешнего вида страницы. Конструктор позволяет добавлять элементы управления и управлять внешним видом страницы.
Найдите панель элементов. В зависимости от параметров параметров интегрированной среды разработки панель элементов может отображаться в виде окна или кнопки (которая часто отображается в левой части интегрированной среды разработки). Если не удается найти панель элементов, щелкните Панель элементов в меню Вид .
Если панель элементов отображается в виде кнопки, наведите указатель на кнопку, чтобы отобразить содержимое панели элементов.
Когда представление конструктора веб-формы активно, панель элементов делится на разделы, включая веб-формы, компоненты, HTML и другие разделы. Щелкните раздел веб-формы.
В разделе веб-формы панели элементов щелкните DataGrid и перетащите его в конструктор для WebForm1.
Щелкните правой кнопкой мыши WebForm1.aspx и выберите пункт Просмотреть код , чтобы отобразить источник страницы программной части.
Добавьте следующие инструкции в верхнюю часть страницы кода программной части над разделом пространства имен:
using System.Data.OleDb; using System.Data;
Выделите следующий код, щелкните его правой кнопкой мыши и выберите команду Копировать. В WebForm1.aspx.cs вставьте код в
Page_Load
событие:// Create connection string variable. Modify the "Data Source" // parameter as appropriate for your environment. String sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + Server.MapPath("../ExcelData.xls") + ";" + "Extended Properties=Excel 8.0;"; // Create connection object by using the preceding connection string. OleDbConnection objConn = new OleDbConnection(sConnectionString); // Open connection with the database. objConn.Open(); // The code to follow uses a SQL SELECT command to display the data from the worksheet. // Create new OleDbCommand to return data from worksheet. OleDbCommand objCmdSelect =new OleDbCommand("SELECT * FROM myRange1", objConn); // Create new OleDbDataAdapter that is used to build a DataSet // based on the preceding SQL SELECT statement. OleDbDataAdapter objAdapter1 = new OleDbDataAdapter(); // Pass the Select command to the adapter. objAdapter1.SelectCommand = objCmdSelect; // Create new DataSet to hold information from the worksheet. DataSet objDataset1 = new DataSet(); // Fill the DataSet with the information from the worksheet. objAdapter1.Fill(objDataset1, "XLData"); // Bind data to DataGrid control. DataGrid1.DataSource = objDataset1.Tables[0].DefaultView; DataGrid1.DataBind(); // Clean up objects. objConn.Close();
В меню Файл выберите команду Сохранить все , чтобы сохранить файлы проекта.
В меню Сборка щелкните Сборка , чтобы выполнить сборку проекта. Этот шаг подготавливает код на странице кода программной части, чтобы его можно было выполнить.
В Обозреватель решений щелкните правой кнопкой мыши WebForm1.aspx и выберите пункт Просмотр в браузере, чтобы запустить код.
Дополнительное объяснение кода
В примере кода в этой статье используется поставщик Microsoft Jet OLE DB для доступа к листу Excel. Этот код использует следующие строка подключения для подключения к листу:
// Create connection string variable. Modify the "Data Source"
// parameter as appropriate for your environment.
String sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" +
"Data Source=" + Server.MapPath("../ExcelData.xls") + ";" +
"Extended Properties=Excel 8.0;";
Как указано в комментариях, необходимо изменить сведения о пути для конкретного листа Excel. Кроме того, необходимо также задать значение параметра для Extended Properties
правильного подключения к файлу.
Примечание.
Строка подключения использует функцию Server.MapPath
. Эта функция принимает путь относительно Microsoft IIS (IIS) к файлу и возвращает путь к жесткому диску к этому файлу. Например, в разделе Создание примера листа Excel вы создадите ExcelData.xls в корневом веб-каталоге, который обычно находится по адресу C:\Inetpub\Wwwroot
. При этом также создается вложенная папка с именем ExcelCSTest в папке Wwwroot и файл с именем WebForm1.aspx в _ExcelCSTest_folder.
В этом примере путь к файлу на жестком диске похож C:\Inetpub\Wwwroot\ExcelCSTest
на . Wwwroot содержит ExcelData.xls, ExcelCSTest содержит WebForm1.aspx.
Путь IIS к файлам похож C:\Web Root\ExcelCSTest
на . А корневой веб-каталог содержит ExcelData.xls, ExcelCSTest — WebForm1.aspx.
В этом случае относительный путь от страницы WebForm1.aspx к файлуExcelData.xls — .. /ExcelData.xls. . Символы / информируют IIS о том, что они должны подняться на один уровень папки. Таким образом, код Server.MapPath("../ExcelData.xls")
возвращает следующую строку:
C:\Inetpub\Wwwroot\ExcelData.xls
Вы не обязаны использовать Server.MapPath
. Вы также можете жестко закодировать эти сведения на определенный путь или использовать любой метод, чтобы указать расположение файла Excel на жестком диске.
Ссылки
Дополнительные сведения об использовании ADO.NET см. в статье Заполнение объекта DataSet из базы данных с помощью Visual C# .NET.
Примечание.
Приведенные здесь примеры компаний, организаций, продуктов, доменных имен, адресов электронной почты, логотипов, людей, мест и событий являются вымышленными. Никакая связь с реальной компанией, организацией, продуктом, доменным именем, адресом электронной почты, логотипом, человеком, местами или событиями не предназначена или не должна быть выведена.
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по