本项目提供完整的C#和ASP.NET代码,实现Excel文件的数据导入和导出功能,适用于需要处理大量数据的企业级应用开发。
ASP.NET中导出Excel表以及从Excel表导入数据到数据库的完整实例代码如下所示。只需调整相应的数据库连接字符串即可使用这些示例。
1. 导出Excel:
```csharp
using System.Data.SqlClient;
using Excel = Microsoft.Office.Interop.Excel;
public void ExportToExcel(string connectionString, string query)
{
using (SqlConnection conn = new SqlConnection(connectionString))
{
SqlDataAdapter adapter = new SqlDataAdapter(query, conn);
DataTable dt = new DataTable();
adapter.Fill(dt);
Excel.Application excelApp = new Excel.Application();
Excel.Workbook workbook = excelApp.Workbooks.Add(Type.Missing);
Excel.Worksheet worksheet = (Excel.Worksheet)workbook.Sheets[1];
// Write data to the worksheet
for (int i = 0; i < dt.Columns.Count; i++)
worksheet.Cells[1, i + 1] = dt.Columns[i].ColumnName;
for (int row = 0; row < dt.Rows.Count; row++)
{
for (int col = 0; col < dt.Columns.Count; col++)
worksheet.Cells[row + 2, col + 1] = dt.Rows[row][col];
}
// Save and close the workbook
excelApp.Visible = true;
}
}
```
2. 导入Excel:
```csharp
using System.Data.SqlClient;
public void ImportFromExcel(string connectionString, string filePath)
{
using (SqlConnection conn = new SqlConnection(connectionString))
{
using (SqlCommand cmd = new SqlCommand())
{
cmd.Connection = conn;
conn.Open();
// Clear the existing data in the target table before importing
cmd.CommandText = DELETE FROM YourTableName;
cmd.ExecuteNonQuery();
string query = $BULK INSERT YourTableName FROM {filePath} WITH (FORMATFILE=YourFormatFile.fmt);
cmd.CommandText = query;
int result = cmd.ExecuteNonQuery();
}
}
}
```
注意:在导入Excel数据时,可能需要创建一个格式文件来指定如何将CSV或文本段落件映射到数据库表中。另外,请根据实际情况修改`YourTableName`和`YourFormatFile.fmt`以匹配你的环境设置。
请确保已安装Microsoft Office或者相应的库支持,并且已经设置了正确的连接字符串以及查询语句。