MiniExcel简单、高效避免OOM的.NET处理Excel查、写、填充数据工具。
即时
操作每行数据首先,您需要将 MiniExcel 库添加到您的 C# WinForms 项目中。您可以使用 NuGet 包管理器来安装 MiniExcel。
定义一个类
C#public class Person
{
public string Name { get; set; }
public int Age { get; set; }
public string Country { get; set; }
}
导出过程
C#private void btnWriteExcel_Click(object sender, EventArgs e)
{
// 创建一个包含数据的列表
var data = new List<Person>
{
new Person {Name= "John Doe",Age= 30,Country= "USA" },
new Person{ Name= "Alice Smith",Age= 25,Country= "Canada" },
new Person { Name= "Bob Johnson", Age= 35, Country= "UK" }
};
// 指定要保存的文件名
var saveFileDialog = new SaveFileDialog();
saveFileDialog.Filter = "Excel Files|*.xlsx";
if (saveFileDialog.ShowDialog() == DialogResult.OK)
{
string filePath = saveFileDialog.FileName;
// 写入数据到 Excel 文件
MiniExcel.SaveAs(filePath, data);
MessageBox.Show("数据已成功写入 Excel 文件!");
}
}
列的别名
C#public class Person
{
[ExcelColumnName("姓名")]
public string Name { get; set; }
public int Age { get; set; }
public string Country { get; set; }
}
指定列宽
C#[ExcelColumnWidth(20)]
只支持csv文件
C#// 指定要保存的文件名
var saveFileDialog = new SaveFileDialog();
saveFileDialog.Filter = "Excel Files|*.csv";
if (saveFileDialog.ShowDialog() == DialogResult.OK)
{
string filePath = saveFileDialog.FileName;
// 写入数据到 Excel 文件
MiniExcel.SaveAs(filePath, data);
//插入行
var d = new Person
{ Name = "张三", Age = 30, Country = "CHINA" };
MiniExcel.Insert(filePath, d);
MessageBox.Show("数据已成功写入 Excel 文件!");
}
C#private void btnRead_Click(object sender, EventArgs e)
{
// IEnumerable
var rows = MiniExcel.Query<Person>("C:\\Users\\trueideal\\Downloads\\4.xlsx");
foreach (var row in rows)
{
//row 就是一个Person实例
}
}
指定读取的Sheet
C#MiniExcel.Query(path, sheetName: "SheetName");
读取所有的列
C#private void btnReadCol_Click(object sender, EventArgs e)
{
var columns = MiniExcel.GetColumns("C:\\Users\\trueideal\\Downloads\\4.xlsx",useHeaderRow:true);
}
类似 Vue 模板 {{变量名称}}
,
C#private void btnTemplate_Click(object sender, EventArgs e)
{
string template = "C:\\Users\\trueideal\\Downloads\\5.xlsx";
var value = new Person
{
Name = "李四",
Age = 11,
Country = "中国"
};
MiniExcel.SaveAsByTemplate("C:\\Users\\trueideal\\Downloads\\5_1.xlsx", template, value);
}
注意:Excel模板中变量名区分大小写。
集合渲染 {{集合名称.栏位名称}}
C#private void btnListTemplate_Click(object sender, EventArgs e)
{
string template = "C:\\Users\\trueideal\\Downloads\\5.xlsx";
// 创建一个包含数据的列表
var data = new
{
P = new[]
{
new Person {Name= "John Doe",Age= 30,Country= "USA" },
new Person{ Name= "Alice Smith",Age= 25,Country= "Canada" },
new Person { Name= "Bob Johnson", Age= 35, Country= "UK" }
}
};
MiniExcel.SaveAsByTemplate("C:\\Users\\trueideal\\Downloads\\5_2.xlsx", template, data);
}
本文作者:技术老小子
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!