C# WinForms 上传多个Excel报表并读取数据
可以使用以下代码实现:
using System;
using System.Collections.Generic;
using System.Data;
using System.IO;
using System.Linq;
using System.Windows.Forms;
namespace ExcelUploader
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void btnUpload_Click(object sender, EventArgs e)
{
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.Multiselect = true;
openFileDialog.Filter = "Excel Files|*.xls;*.xlsx";
if (openFileDialog.ShowDialog() == DialogResult.OK)
{
List<string> filePaths = openFileDialog.FileNames.ToList();
foreach (string filePath in filePaths)
{
ReadExcel(filePath);
}
}
}
private void ReadExcel(string filePath)
{
// 读取Excel文件
DataTable dataTable = new DataTable();
try
{
using (var stream = File.Open(filePath, FileMode.Open, FileAccess.Read))
{
using (var reader = ExcelReaderFactory.CreateReader(stream))
{
var result = reader.AsDataSet(new ExcelDataSetConfiguration()
{
ConfigureDataTable = (tableReader) => new ExcelDataTableConfiguration()
{
UseHeaderRow = true
}
});
if (result.Tables.Count > 0)
{
dataTable = result.Tables[0];
}
}
}
}
catch (IOException ex)
{
MessageBox.Show("文件正在使用中,请关闭文件后再上传。");
return;
}
catch (Exception ex)
{
MessageBox.Show("读取Excel文件出错:" + ex.Message);
return;
}
// 处理Excel数据
foreach (DataRow row in dataTable.Rows)
{
// 处理每一行数据
foreach (var item in row.ItemArray)
{
// 处理每个单元格数据
Console.WriteLine(item);
}
}
}
}
}
这是一个简单的WinForms应用程序,其中包含一个'上传'按钮(btnUpload),点击该按钮可以选择多个Excel文件进行上传。上传后,会调用ReadExcel方法来读取每个Excel文件的数据。
需要注意的是,上述代码中使用了一个名为ExcelDataReader的第三方库,用于读取Excel文件。你可以通过NuGet包管理器来安装这个库。
需要添加以下引用:
using ExcelDataReader;
using System.IO;
using System.Linq;
using System.Windows.Forms;
希望对你有帮助!
原文地址: https://www.cveoy.top/t/topic/qr6O 著作权归作者所有。请勿转载和采集!