c# - 使用标准验证 pt2 导入主数据
问题描述
如何结合这些想法?
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文件的所有表格都将显示在列表中。
解决方案
正如你所说,把它们放在一起!
您需要选择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;
}
}
现在我们在第二个片段中调用它!
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);
}
现在,当您单击按钮时,它将显示文件对话框,当您选择文件时,它会在列表视图中显示它!
推荐阅读
- python-3.x - 尝试使用 python 多处理生成散景图,最终得到以下错误
- ios - 嵌套在 UITableViewCell 中的 UICollectionView 在接收到新数据后不使用 DispatchQueue 更新
- python - 根据 Pandas 中的列标准进行绘图
- jquery - 在提交之前使用 jQuery 从 DOM 中删除选择字段值?
- neural-network - 为什么添加更多层会使我的中性网络变得更糟?
- firebase - FirebaseAnimatedList 实时更改内容
- javascript - 导出静态 HTML 并使用 next-sass 插件时,我的 next.config.js 文件应该是什么样子?
- php - PHP -- 输出到大文本文件很慢并且可能导致服务器错误
- javascript - ajaxStart - 更改显示并不总是有效
- jquery - Bootstrap datepicker 根据其他日期输入设置最大值和最小值