2015-10-15 60 views
1

我有这个循环,但最后一个值被保存如何将循环的所有值保存到datagridview。将所有值添加到DataTable,而不仅仅是最后一个

int i = 0; 
while (i < pdfFiles.Length) 
{ 
    var firstPdfFilename = pdfFiles[i].FullName; 
    string ama = firstPdfFilename.ToString(); 
    Excel.Application application = new Excel.Application(); 
    Excel.Workbook workbookOne; 
    workbookOne = application.Workbooks.Open(ama); 
    Excel.Worksheet worksheet; 
    worksheet = workbookOne.Sheets[1]; 
    string test = worksheet.Cells[12, 3].Value.ToString(); 
    workbookOne.Close(true); 
    application.Quit(); 
    DataTable dt = new DataTable(); 
    dt.Columns.Add("My first column Name"); 
    dt.Columns.Add("My column Name"); 
    DataRow _ravi = dt.NewRow(); 
    _ravi["My first column Name"] = test; 
    _ravi["My column Name"] = test; 
    dt.Rows.Add(_ravi); 
    dataGridView1.DataSource = dt; 
    dataGridView1.AllowUserToAddRows = false; 
    i++; 
} 

回答

1

你需要设置你的DataTable并应用DataSource外循环:

int i = 0; 
DataTable dt = new DataTable(); 
dt.Columns.Add("My first column Name"); 
dt.Columns.Add("My column Name"); 
while (i < pdfFiles.Length) 
{ 
    var firstPdfFilename = pdfFiles[i].FullName; 
    string ama = firstPdfFilename.ToString(); 
    Excel.Application application = new Excel.Application(); 
    Excel.Workbook workbookOne; 
    workbookOne = application.Workbooks.Open(ama); 
    Excel.Worksheet worksheet; 
    worksheet = workbookOne.Sheets[1]; 
    string test = worksheet.Cells[12, 3].Value.ToString(); 
    workbookOne.Close(true); 
    application.Quit(); 
    DataRow _ravi = dt.NewRow(); 
    _ravi["My first column Name"] = test; 
    _ravi["My column Name"] = test; 
    dt.Rows.Add(_ravi); 
    i++; 
} 
dataGridView1.DataSource = dt; 
dataGridView1.AllowUserToAddRows = false; 
+0

Thavk你,你帮了不少忙! – user3142452

相关问题