在C#中,可以使用Microsoft.Office.Interop.Excel命名空间来进行Excel文件的导入和导出操作。下面是一个简单的示例代码来演示如何使用C#导入和导出Excel文件:
导入Excel文件:
using Excel = Microsoft.Office.Interop.Excel;
// 导入Excel文件
public void ImportExcel(string filePath)
{
Excel.Application excelApp = new Excel.Application();
Excel.Workbook workbook = excelApp.Workbooks.Open(filePath);
Excel.Worksheet worksheet = workbook.Sheets[1]; // 假设导入第一个工作表
int rowCount = worksheet.UsedRange.Rows.Count;
int columnCount = worksheet.UsedRange.Columns.Count;
for (int row = 1; row <= rowCount; row++)
{
for (int column = 1; column <= columnCount; column++)
{
Excel.Range range = worksheet.Cells[row, column];
string cellValue = range.Value2.ToString(); // 获取单元格的值
// 处理单元格数据...
}
}
workbook.Close();
excelApp.Quit();
releaseObject(worksheet);
releaseObject(workbook);
releaseObject(excelApp);
}
private void releaseObject(object obj)
{
try
{
System.Runtime.InteropServices.Marshal.ReleaseComObject(obj);
obj = null;
}
catch (Exception ex)
{
obj = null;
Console.WriteLine("释放对象时发生异常:" + ex.ToString());
}
finally
{
GC.Collect();
}
}
导出数据到Excel文件:
using Excel = Microsoft.Office.Interop.Excel;
// 导出数据到Excel文件
public void ExportToExcel(DataTable dataTable, string filePath)
{
Excel.Application excelApp = new Excel.Application();
Excel.Workbook workbook = excelApp.Workbooks.Add();
Excel.Worksheet worksheet = workbook.Sheets[1]; // 假设导出到第一个工作表
// 写入数据
int rowCount = dataTable.Rows.Count;
int columnCount = dataTable.Columns.Count;
for (int row = 1; row <= rowCount; row++)
{
for (int column = 1; column <= columnCount; column++)
{
worksheet.Cells[row, column] = dataTable.Rows[row - 1][column - 1].ToString();
}
}
// 保存Excel文件
workbook.SaveAs(filePath);
workbook.Close();
excelApp.Quit();
releaseObject(worksheet);
releaseObject(workbook);
releaseObject(excelApp);
}
在上述代码中,我们使用`Microsoft.Office.Interop.Excel`命名空间来操作Excel应用程序和工作簿。对于导入操作,我们打开Excel文件,遍历每个单元格以获取值。对于导出操作,我们创建Excel应用程序、工作簿和工作表,并将数据写入相应的单元格。最后,我们保存Excel文件并退出Excel应用程序。
请注意,为了确保正常释放资源,我们定义了一个`releaseObject`函数来释放COM对象。这是因为在使用Interop服务时,必须手动释放所有COM对象,以避免内存泄漏。
此外,在使用这些代码之前,你需要先在项目中添加对`Microsoft.Office.Interop.Excel`的引用。