各位大大好:小弟为c#新手,目前收到一个C#需求,如下描述:
要读取资料夹内特定名称的多个Excel,(例如:Excel档名为ABC_2024_01、ABC_2024_02 ... ABC_2024_12 等共计十二个档案)
将这些档案内的特定栏位资料读取出来,塞入另一个固定栏位格式的Excel
然而小弟想透过NPOI合併多个Excel成为一个名为 ABC_2024 的新创Excel,
并读取 ABC_2024的特定栏位至DataTable,
将DataTable里的资料依照格式塞入另一个新创固定格式的Excel,
但不知道如何撰写程式,想寻求各位大大协助,感谢
1 个回答
1
alien663
iT邦研究生 3 级 ‧ 2025-02-20 08:32:16
首先你要先定义出可以解决问题的流程,不牵涉写程式,先想想手动的话你要怎么做
- 建立excel命名为ABC_2024
- 打开ABC_2024_01
- 複製资料到ABC_2024
其实程式码要做的事情也是一样的
string path = @"D:\\Test"
DirectoryInfo excelLocation = new DirectoryInfo(@"D:\\Test");
DataTable result = new DataTable();
using ExcelConverter excel = new ExcelConverter();
foreach (FileInfo _file in excelLocation.GetFiles("*.xlsx"))
{
FileStream fs = new FileStream(_file.FullName, FileMode.Open, FileAccess.Read);
DataTable temp = new DataTable();
temp = excel.readFileDT(fs);
#region Combine your data here
result.Merge(temp);
#endregion
fs.Close();
}
byte[] data = excel.export(result);
using FileStream fs2 = File.Create(path + Path.DirectorySeparatorChar + "result.xlsx")
里面的ExcelConverter是我自己写的Library
Alien663 GitHub