首页 > 解决方案 > 如何用 Excel 工作表填充 Listview?(C#,Windows 窗体)

问题描述

问题在标题中。我在互联网上没有找到答案。问题:我不能使用 OleDbConnection 因为我必须将文件发送给其他人。

我厌倦了寻找可能不存在的答案,如果有人可以帮助我,我将不胜感激。

这是我的代码,我被困在填充中:

public partial class Form1 : Form
{
    string fname;

    public Form1()
    {
        InitializeComponent();

        fname = "";
        OpenFileDialog fdlg = new OpenFileDialog();
        fdlg.Title = "Excel File Dialog";
        fdlg.InitialDirectory = @"c:\";
        fdlg.Filter = "Excel .csv (*.csv)|*.csv";
        fdlg.FilterIndex = 1;
        fdlg.RestoreDirectory = true;
        if (fdlg.ShowDialog() == DialogResult.OK)
        {
            fname = fdlg.FileName;
        }

        Microsoft.Office.Interop.Excel.Application xla = new Microsoft.Office.Interop.Excel.Application();
        xla.Visible = true;
        Microsoft.Office.Interop.Excel.Workbook wb = xla.Workbooks.Open(fname);
        Microsoft.Office.Interop.Excel.Worksheet ws = wb.Worksheets[1];
        Microsoft.Office.Interop.Excel.Range xlRange = ws.UsedRange;

        int rowCount = xlRange.Rows.Count;
        int colCount = xlRange.Columns.Count;

        for (int i = 0; i <= rowCount; i++)
        {
            for (int j = 1; j <= colCount; j++)
            {
                listView.Columns.Add(xlRange.Columns.Text);     //This line is not working
            }
        }

        xla.Quit();
        xla = null;
    }

标签: c#excelwinformslistview

解决方案


我使用以下内容将数据读入一个大对象

对象[,] 值 = (对象[,])xlRange.Value2;

并使用以下命令访问它: string nextVal = values[iRow, iCol] as string;


推荐阅读