在日常办公中,很多人每天都要和Excel、数据报表打交道。比如财务要对账,销售要统计业绩,人事要整理员工信息。这些工作重复又繁琐,其实完全可以用一个自己写的桌面小工具来自动化处理。C#开发桌面软件,正适合干这种事。
为什么选C#做表格类工具?
Windows系统上,C#配合WinForm或WPF,能快速做出界面清爽、操作顺手的桌面程序。特别是处理表格数据时,.NET自带的DataTable、DataGridView控件非常实用。几行代码就能把Excel里的数据读进来,再按条件筛选、汇总、导出,比手动操作快得多。
比如你每个月都要从一堆销售记录里统计每个区域的总金额。手动打开Excel,拉公式,复制粘贴,半小时都搞不定。但用C#写个小程序,点一下“导入”,再点“统计”,结果立马出来。
读取Excel表格就这么简单
借助第三方库如NPOI,C#可以不依赖Office直接读写Excel文件。安装NuGet包后,代码写起来很直观:
using NPOI.SS.UserModel;
using NPOI.XSSF.UserModel;
IWorkbook workbook = new XSSFWorkbook(@"销售数据.xlsx");
ISheet sheet = workbook.GetSheetAt(0);
for (int i = 1; i <= sheet.LastRowNum; i++) {
IRow row = sheet.GetRow(i);
string region = row.GetCell(1).ToString();
double amount = row.GetCell(3).NumericCellValue;
// 处理数据...
}
这样就把Excel里的每一行数据读进来了,接下来想怎么算都行。
用 DataGridView 展示更直观
WinForm里的DataGridView控件,天生就是为表格数据准备的。你可以把处理后的结果绑定上去,用户一看就明白。
DataTable resultTable = new DataTable();
resultTable.Columns.Add("区域", typeof(string));
resultTable.Columns.Add("销售额", typeof(double));
// 添加一行数据
resultTable.Rows.Add("华东", 156000);
// 绑定到控件
dataGridView1.DataSource = resultTable;
运行后,窗口里就清清楚楚显示了一张表格。还能排序、搜索,体验比原始Excel还好。
导出功能也不能少
处理完数据,自然要导出给别人看。继续用NPOI,反向操作就行:
IWorkbook newBook = new XSSFWorkbook();
ISheet newSheet = newBook.CreateSheet("汇总表");
for (int i = 0; i < resultTable.Rows.Count; i++) {
IRow newRow = newSheet.CreateRow(i);
newRow.CreateCell(0).SetCellValue(resultTable.Rows[i]["区域"].ToString());
newRow.CreateCell(1).SetCellValue(Convert.ToDouble(resultTable.Rows[i]["销售额"]));
}
// 保存文件
using (FileStream fs = new FileStream(@"汇总结果.xlsx", FileMode.Create, FileAccess.Write)) {
newBook.Write(fs);
}
加个“导出”按钮,用户点一下就生成新文件,省得再手动复制。
这类小工具不需要多复杂,界面简洁、功能明确就行。很多公司内部的流程,其实都是靠这样的C#小软件撑起来的。你不用成为架构师,会写点代码,就能让工作轻松一大截。