namespace WinFormsApp4
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Load_Click(object sender, EventArgs e)
{
using (OpenFileDialog ofd = new OpenFileDialog())
{
ofd.Filter = "Excel Files only | *.xlsx; *.xls; *.csv;" ;
ofd.Title = "Choose the file";
if (ofd.ShowDialog() == DialogResult.OK)
label1.Text = ofd.FileName;
}
}
private void Import_Click_1(object sender, EventArgs e)
{
Microsoft.Office.Interop.Excel.Application xlapp;
Microsoft.Office.Interop.Excel.Workbook xlworkbook;
Microsoft.Office.Interop.Excel.Worksheet xlworksheet;
Microsoft.Office.Interop.Excel.Range xlrange;
try
{
xlapp = new Microsoft.Office.Interop.Excel.Application();
xlworkbook = xlapp.Workbooks.Open(label1.Text);
xlworksheet = xlworkbook.Worksheets["List1"];
xlrange = xlworksheet.UsedRange;
DataMore.ColumnCount = xlrange.Columns.Count;
DataMore.ColumnCount = 6;
DataMore.Columns[0].HeaderText = "Datum";
DataMore.Columns[1].HeaderText = "Energia";
DataMore.Columns[2].HeaderText = "AC výkon";
DataMore.Columns[3].HeaderText = "napetie siete";
DataMore.Columns[4].HeaderText = "AC prud";
DataMore.Columns[5].HeaderText = "DC napetie";
foreach (DataGridViewRow row in DataMore.Rows)
{
}
// for (int xlrow = 1; xlrow <= xlrange.Rows.Count; xlrow++)
// {
// DataMore.Rows.Add(xlrange.Cells[xlrow, 1].Text, xlrange.Cells[xlrow, 2].Text, xlrange.Cells[xlrow, 3].Text,
// xlrange.Cells[xlrow, 4].Text);
// }
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
}
嗨,首先我完全初学C#编程。我尝试从Excel导入数字到datagridview。所有的数字都在1列,看起来像这样:
一、二、三、四、五、六、七、八、九、十
所有的数字都不是真实的因为原来的excel有数字,他收集24/7过去5年和它的吨的数字,所以我创建自己的小excel...
我只是想创建程序,我从Excel导入数字,然后我删除数字“0”,然后试图创建图表...但我在开始卡住了,你能帮我吗?
1条答案
按热度按时间nr7wwzry1#
您的问题是关于使用
Microsoft.Office.Interop.Excel
将Excel数据导入到DataGridView
控件,并指出视图为空的问题。查看您的代码时,我还注意到一些Excel对象未被正确处理,这可能导致Excel的多个示例运行(请查看任务管理器)。因此,我想从头开始,分四个步骤看看如何妥善地进行这项工作。
记录类
创建一个名为Record的类来表示一行数据。
自动配置数据网格视图
创建一个
BindingList<Record>
并将其附加到数据网格视图的DataSource
属性。配置Excel互操作创建和释放
导入数据(在本例中是从预定的文件位置导入)
由于
Records
的数据源绑定,当您添加到该集合时,它将显示在数据网格视图中,而不必处理控件本身。因此,在Excel中打开工作簿和工作表后,捕获所有使用过的单元格的范围并解析该信息以创建
Record
示例,然后将它们添加到Records
集合中。