【问题标题】:Importation of Master data with standard validation pt2使用标准验证 pt2 导入主数据
【发布时间】:2018-09-13 10:04:59
【问题描述】:

如何结合这些想法?

if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
    string name = "Sheet1";
    string extension = Path.GetExtension(openFileDialog1.FileName);

        using (System.Data.OleDb.OleDbConnection con = new System.Data.OleDb.OleDbConnection())
        {
            switch (extension)
            {
                case ".xls" :
                    string xlsconStr = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source='" + openFileDialog1.FileName + "'; Extended Properties=Excel 8.0;";
                    con.ConnectionString = xlsconStr;
                break;

                case ".xlsx":
                    string xlsxconStr = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source='" + openFileDialog1.FileName + "'; Extended Properties=Excel 12.0;";
                    con.ConnectionString = xlsxconStr;
                break;
            }

        using (System.Data.OleDb.OleDbCommand oconn = new System.Data.OleDb.OleDbCommand("SELECT * FROM [" + name + "$]", con))
        {
            con.Open();

            System.Data.OleDb.OleDbDataAdapter adapter = new System.Data.OleDb.OleDbDataAdapter(oconn);
            DataTable data = new DataTable();
            adapter.Fill(data);
            dataGridView1.DataSource = data;
        }
}

还有这个

Excel.Application myExcelApp = new Excel.Application();
Excel.Workbooks myExcelWorkbooks;
Excel.Workbook myExcelWorkbook;

myExcelApp.Visible = false;
myExcelWorkbooks = myExcelApp.Workbooks;
string fileName = Convert.ToString("C:\\Users\\ProgrammerPC1\\Desktop\\DLAV FILES\\ACSAD.xls");
myExcelWorkbook = myExcelWorkbooks.Open(fileName);
Excel.Worksheet myExcelWorksheet = (Excel.Worksheet)myExcelWorkbook.ActiveSheet;
            //myExcelWorksheet.Select(Type.Missing);

foreach(Worksheet worksheet in myExcelWorkbook.Worksheets)
{
    listBox1.Items.Add(worksheet.Name);
}

我的想法是删除 dataGridView,当我点击按钮(导入)时,它会显示 openFileDialog > 选择 Excel 文件 >在 listView 中,excel 文件的所有 SHEETS 都将在列表中。

【问题讨论】:

  • 如果是c#,为什么要标记vb.net

标签: c# excel


【解决方案1】:

如你所说,把它们放在一起!

您需要选择open file dialog 部分并将其与for each loop 合并,如下所示:

private string GetFileExcel()
{
    ExcelFileDialog.Filter = "File Excel|*.xls; *.xlsx";
    OpenFileDialog1.InitialDirectory = "C:\\";
    if (OpenFileDialog1.ShowDialog() == DialogResult.OK)
    {
        return OpenFileDialog1.FileName;
    }
}

现在我们在第二个 sn-p 中调用它!

Excel.Application myExcelApp = new Excel.Application();
Excel.Workbooks myExcelWorkbooks;
Excel.Workbook myExcelWorkbook;

myExcelApp.Visible = false;
myExcelWorkbooks = myExcelApp.Workbooks;

myExcelWorkbook = myExcelWorkbooks.Open(GetFileExcel()); //We call the new function here, inside the open
Excel.Worksheet myExcelWorksheet = (Excel.Worksheet)myExcelWorkbook.ActiveSheet;

foreach(Worksheet wSheet in myExcelWorkbook.Worksheets)
{
    listBox1.Items.Add(wSheet.Name);
}

现在,当您单击按钮时,它将显示文件对话框,当您选择文件时,它会在列表视图中显示它!

【讨论】:

  • 对不起,我不明白
  • 公共字符串文件名 { get;放; } 我要在这里放什么?
  • @Qwerty 你有什么意思我不明白
  • 没关系,现在我的问题是通过单击 listBox 上的第一项,它来自 excel 文件工作表名称,它应该填充 dataGridView
  • @Qwerty 你的问题是在你关于stackoverflow的新问题中描述的吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-03-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多