c# 向excel表格追加数据
时间: 2023-08-02 22:41:56 浏览: 284
你可以使用 C# 的 COM 对象访问 Excel 应用程序以将数据追加到 Excel 表格中。以下是示例代码:
```csharp
using Microsoft.Office.Interop.Excel;
// 创建 Excel 应用程序对象
Application excelApp = new Application();
// 打开 Excel 文件
Workbook workbook = excelApp.Workbooks.Open("your_file_path.xlsx");
// 选择工作表
Worksheet worksheet = workbook.Sheets["Sheet1"];
// 获取最后一行
int lastRow = worksheet.Cells.SpecialCells(XlCellType.xlCellTypeLastCell).Row;
// 追加数据
worksheet.Cells[lastRow + 1, 1] = "New Data 1";
worksheet.Cells[lastRow + 1, 2] = "New Data 2";
// 保存并关闭 Excel 文件
workbook.Save();
workbook.Close();
excelApp.Quit();
```
以上代码将在名为 "Sheet1" 的工作表中追加新数据。你需要在 `worksheet.Cells` 中指定要追加的单元格位置和数据值。最后,记得在完成操作后保存并关闭 Excel 文件。
相关问题
C#读取excel表格数据并进行筛选
在C#中,可以使用Epplus库(EPPlus)来方便地读取Excel文件的数据,并进行筛选操作。以下是一个基本步骤:
1. **安装Epplus库**:首先需要在你的项目中添加Epplus NuGet包,可以在Nuget Package Manager或通过命令行`Install-Package EPPlus`来安装。
2. **打开Excel文件**:使用`Document`类打开Excel文件,例如:
```csharp
using OfficeOpenXml;
ExcelPackage excel = new ExcelPackage(new FileInfo(@"path\to\your\file.xlsx"));
```
3. **读取工作表**:获取你需要的数据所在的Sheet,如`Worksheet worksheet = excel.Workbook.Worksheets["Sheet1"]`。
4. **加载数据到DataTable**:将工作表内容加载到DataTable,便于处理和筛选:
```csharp
DataTable dataTable = worksheet.CellsUsed.Select(c => c.Value).ToList().ToDataTable();
```
5. **筛选数据**:你可以使用` LINQ`查询来筛选满足条件的行:
```csharp
var filteredData = from row in dataTable.AsEnumerable()
where row.Field<int>("ColumnIndex") > 10 // 假设你有一个名为"ColumnIndex"的列用于筛选
select row;
```
6. **处理筛选后的数据**:现在你可以遍历`filteredData`集合来进行后续的操作,比如打印、保存到新的文件等。
c#创建excel表格
### 使用 C# 创建 Excel 文件并填充数据
为了使用 C# 创建 Excel 文件并填充数据,可以采用多种库来完成这一操作。NPOI 是一种常用的开源库,能够很好地处理 Excel 文档的创建与修改。
下面是一个完整的例子,展示如何利用 NPOI 库创建一个新的 Excel 工作簿,并向其中的工作表添加一些简单的数据:
```csharp
using NPOI.SS.UserModel;
using NPOI.XSSF.UserModel;
using System.IO;
public void CreateAndFillExcel()
{
// 创建一个新的工作簿实例
IWorkbook workbook = new XSSFWorkbook();
// 添加一个新工作表到当前工作簿中
ISheet sheet = workbook.CreateSheet("Sample Sheet");
// 准备要填入的数据列表
var data = new List<string[]>
{
new string[]{"姓名", "年龄", "性别"},
new string[]{"张三", "28", "男"},
new string[]{"李四", "22", "女"}
};
int rowIndex = 0;
foreach (var rowData in data)
{
// 创建一行用于放置单元格
IRow row = sheet.CreateRow(rowIndex++);
for (int i = 0; i < rowData.Length; i++)
{
// 向每一行中的特定位置设置值
row.CreateCell(i).SetCellValue(rowData[i]);
}
}
// 将整个文档的内容写入内存流对象
using FileStream fs = new FileStream(@"d:\example.xlsx", FileMode.Create, FileAccess.Write);
workbook.Write(fs);
}
```
上述代码片段展示了怎样通过编程方式构建 Excel 表格结构以及输入具体数值[^2]。这里的关键在于理解 `IWorkbook` 接口代表了一个 Excel 文件本身;而 `ISheet` 则表示单个工作表。此外,还可以看到是如何遍历二维数组形式的数据集并将它们逐条记录至相应的行列之中。
对于更复杂的场景比如样式调整或者公式计算等功能,则可能涉及到更多 API 的调用。例如,在某些情况下想要改变某个区域的颜色可以通过类似如下语句实现:
```csharp
// 设置 A1 至 D1 单元格背景颜色为黄色(ColorIndex=6)
mySheet.Range["A1", "D1"].Interior.ColorIndex = 6;
```
不过需要注意的是此段代码适用于早期版本 Office Interop 方式而非现代推荐使用的 NPOI 方法[^5]。
#### 注意事项
当实际开发过程中遇到性能瓶颈或者其他特殊需求时,建议查阅官方文档获取最新最权威的信息和支持。
阅读全文
相关推荐















