我有几个excel文件,都是特定格式的。我需要从他们每个人那里获取数据并在我的程序中同时显示所有数据。
问题是,我的数据是在特定的单元格中。
这是我到目前为止的代码:
public partial class Form1 : Form
{
FolderBrowserDialog fbd = new FolderBrowserDialog();
String[] genel = new String [1000];
public Form1()
{
InitializeComponent();
this.textBox1.ReadOnly = true;
}
private void btnGozat_Click(object sender, EventArgs e)
{
if (fbd.ShowDialog() == DialogResult.OK)
{
checkedListBox1.Items.AddRange(Directory.GetFiles(fbd.SelectedPath).Select(x => Path.GetFileName(x)).ToArray());
}
textBox1.Text =fbd.SelectedPath;
String[] allfiles = System.IO.Directory.GetFiles(fbd.SelectedPath, "*.*", System.IO.SearchOption.AllDirectories);
genel = allfiles;
}
private void btnAnaliz_Click(object sender, EventArgs e)
{
String[] checkedFiles = new String[checkedListBox1.Items.Count];
int count;
int checkF = 0;
for (count = 0; count < checkedListBox1.Items.Count; count++)
{
if (checkedListBox1.GetItemChecked(count))
{
checkedFiles[checkF] = genel[count];
checkF++;
}
}
}
}
谢谢。
答案 0 :(得分:1)
以下是一些我希望它有用的代码:
ExcelReader reader = new ExcelReader();
reader.ConnectionString = String.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0}; Extended Properties=Excel 12.0;", dataSource);
DataSet testData = reader.ConvertToDataSet(workSheet);
您有一个不同的班级ExcelReader
和方法ConvertToDataSet
。
public ExcelReader(string connectionString)
{
_connectionString = connectionString;
}
public DataSet ConvertToDataSet(string workSheetName)
{
OleDbDataAdapter adapter = new OleDbDataAdapter("SELECT * FROM [" + workSheetName + "$]", ConnectionString);
DataSet ds = new DataSet();
adapter.Fill(ds, "Standard");
return ds;
}
之后,您在DataSet
中拥有Excel文件,您可以操作数据。
您还需要一个连接字符串属性!