简介
Microsoft Excel是一个强大的办公软件,可用于存储、分析和共享数据。在 Excel 中创建的电子表格可以轻松地转换为其他文件格式,如CSV,但有时您可能需要在ASP.NET应用程序中使用Excel文件的数据。在本文中,我们将介绍如何使用Excel,MSSQL和ASP.NET应用程序来导出Excel文件。
创建Excel文件
在ASP.NET应用程序中,可以使用Microsoft.Office.Interop.Excel
命名空间来创建Excel文件。下面是一个代码示例,我们将使用它来创建一个包含姓名和电子邮件地址的简单Excel文件:
using Excel = Microsoft.Office.Interop.Excel;
//创建Excel文件
Excel.Application excelApp = new Excel.Application();
Excel.Workbook excelWorkBook = excelApp.Workbooks.Add();
Excel.Worksheet excelWorkSheet = (Excel.Worksheet)excelWorkBook.Sheets.Add();
excelWorkSheet.Name = "Contacts";
excelWorkSheet.Cells[1, 1] = "Name";
excelWorkSheet.Cells[1, 2] = "Email";
excelWorkSheet.Cells[2, 1] = "John Doe";
excelWorkSheet.Cells[2, 2] = "john.doe@example.com";
excelWorkSheet.Cells[3, 1] = "Jane Doe";
excelWorkSheet.Cells[3, 2] = "jane.doe@example.com";
excelWorkSheet.SaveAs("contacts.xlsx");
excelWorkBook.Close();
excelApp.Quit();
将数据插入MSSQL数据库
在此示例中,我们要插入Excel文件中的数据到MSSQL数据库中。我们将从Excel文件中读取数据,然后使用ADO.NET连接到数据库。这是代码示例:
string connectionString = "[MSSQL连接字符串]";
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
SqlCommand command = new SqlCommand("", connection);
for (int i = 2; i <= 3; i++)
{
string name = excelWorkSheet.Cells[i, 1].Value.ToString();
string email = excelWorkSheet.Cells[i, 2].Value.ToString();
command.CommandText = "INSERT INTO Contacts (Name, Email) VALUES ('" + name + "', '" + email + "')";
command.ExecuteNonQuery();
}
}
注意:不要像这个例子一样将SQL查询作为纯文本构建。这是很危险的,可以导致SQL注入攻击。最好使用参数化查询来代替上面的方式。
从MSSQL数据库读取数据并导出到Excel
为了从MSSQL数据库中检索数据,我们将在C#中使用ADO.NET。在此示例中,我们将从MSSQL数据库中检索数据,然后将其导出到Excel文件中。这是代码示例:
string connectionString = "[MSSQL连接字符串]";
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
SqlCommand command = new SqlCommand("SELECT * FROM Contacts", connection);
SqlDataReader reader = command.ExecuteReader();
Excel.Application excelApp = new Excel.Application();
Excel.Workbook excelWorkBook = excelApp.Workbooks.Add();
Excel.Worksheet excelWorkSheet = (Excel.Worksheet)excelWorkBook.Sheets.Add();
excelWorkSheet.Name = "Contacts";
for (int i = 1; i < reader.FieldCount + 1; i++)
{
excelWorkSheet.Cells[1, i] = reader.GetName(i - 1);
}
int row = 2;
while (reader.Read())
{
for (int i = 0; i < reader.FieldCount; i++)
{
excelWorkSheet.Cells[row, i + 1] = reader[i].ToString();
}
row++;
}
reader.Close();
excelWorkSheet.SaveAs("contacts.xlsx");
excelWorkBook.Close();
excelApp.Quit();
}
结论
在本文中,我们介绍了如何使用ASP.NET应用程序,Excel和MSSQL来导出Excel文件以及常规的MSSQL数据库操作。这种方法可以帮助您将Excel数据用于其他用途。