如何在asp.net中将excel表格转换为特定格式



如何指定6列并在datagridview中命名,以便在导入缺少列的excel工作表时添加缺少的列。我需要保持内容为空,并根据我在datagridview中指定的内容排列列。注:列名不变。

例如,我在datagridview中指定了列A、B、C、D,excel表具有相同的列名,但其中一些列缺失,例如(A,C(

这就是我将excel表导入应用程序所做的:

namespace excelreaderdesktop
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
OpenFileDialog fil = new OpenFileDialog();
fil.ShowDialog();
string path = fil.FileName.ToString();
ExcelFileReader(path);
}
public void ExcelFileReader(string path)
{
var stream = File.Open(path, FileMode.Open, FileAccess.Read);
var reader = ExcelReaderFactory.CreateReader(stream);
var result = reader.AsDataSet();
var tables = result.Tables.Cast<DataTable>();
foreach(DataTable table in tables)
{
dataGridView1.DataSource = table;
}
}
}
}

大家好,欢迎来到Stacktoverflow,

如果我正确理解你的问题,请查看dataGridView1中存在哪些列,并将它们与excel文件中的excel文件进行核对。

示例:

// create an exapmle DataTabel (in your case your tables from the excel-file)
// The excel-file has the columns B and D
DataTable table = new DataTable();
table.Columns.Add("B");
table.Columns.Add("D");
// loop over the columns in the dataGridView1
foreach (DataGridViewColumn column in dataGridView1.Columns)
{
// xheck whether the column exists in the table, otherwise add it. 
if (!table.Columns.Contains(column.Name))
{
table.Columns.Add(column.Name);
}
}
// clear old columns from dataGridView1
dataGridView1.Columns.Clear();
// update dataGridView1
dataGridView1.DataSource = dt;

希望这对你有帮助。

最新更新