将 Excel 范围导出到 DataGridView 以维护单元格格式和公式
Export Excel Range to DataGridView maintaining cell formatting and formulas
我正在使用 Spire.XLS,我必须用不同的工作表填充一个 excel 文件,然后问题就来了,我需要从不同的工作表中取出值并将它们一起导出到相同的 dataGridView,取值我使用方法 sheet.Range[]
,它看起来像 spire.XLS 作为命令 exportDataTable()
,但在这种情况下它显示这样的东西
这个的问题是它不保留单元格背景颜色,也不保留最后一列中公式的实际值,如果需要,我也对其他库开放,但我需要解决这个问题
没有将 Excel 格式导出到 DataGridView 的直接方法,您可能会编写大量代码来将 Excel 格式转换为 DataGridView。如果要导出公式的实际值而不是公式本身,可以使用ExportDataTable(CellRange range, bool exportColumnNames, bool computedFormulaValue)方法
这是一个基本示例:
private void button1_Click(object sender, EventArgs e)
{
Workbook workbook = new Workbook();
workbook.LoadFromFile("Input.xlsx");
Worksheet sheet = workbook.Worksheets[0];
DataTable dt = sheet.ExportDataTable(sheet.Range, true, true);
this.dataGridView1.DataSource = dt;
this.dataGridView1.EnableHeadersVisualStyles = false;
this.dataGridView1.ColumnHeadersDefaultCellStyle.BackColor = sheet.Rows[0].Style.Color;
}
输入Excel:
输出DataGridView:
我正在使用 Spire.XLS,我必须用不同的工作表填充一个 excel 文件,然后问题就来了,我需要从不同的工作表中取出值并将它们一起导出到相同的 dataGridView,取值我使用方法 sheet.Range[]
,它看起来像 spire.XLS 作为命令 exportDataTable()
,但在这种情况下它显示这样的东西
这个的问题是它不保留单元格背景颜色,也不保留最后一列中公式的实际值,如果需要,我也对其他库开放,但我需要解决这个问题
没有将 Excel 格式导出到 DataGridView 的直接方法,您可能会编写大量代码来将 Excel 格式转换为 DataGridView。如果要导出公式的实际值而不是公式本身,可以使用ExportDataTable(CellRange range, bool exportColumnNames, bool computedFormulaValue)方法
这是一个基本示例:
private void button1_Click(object sender, EventArgs e)
{
Workbook workbook = new Workbook();
workbook.LoadFromFile("Input.xlsx");
Worksheet sheet = workbook.Worksheets[0];
DataTable dt = sheet.ExportDataTable(sheet.Range, true, true);
this.dataGridView1.DataSource = dt;
this.dataGridView1.EnableHeadersVisualStyles = false;
this.dataGridView1.ColumnHeadersDefaultCellStyle.BackColor = sheet.Rows[0].Style.Color;
}
输入Excel:
输出DataGridView: