Click here to Skip to main content
15,917,793 members
Home / Discussions / C#
   

C#

 
GeneralDynamically add TabPages to my form depending on the number of worksheets in a spreadsheet Pin
Walaza7-Apr-08 2:18
Walaza7-Apr-08 2:18 
GeneralRe: Dynamically add TabPages to my form depending on the number of worksheets in a spreadsheet [modified] Pin
lsconyer7-Apr-08 2:32
lsconyer7-Apr-08 2:32 
GeneralRe: Dynamically add TabPages to my form depending on the number of worksheets in a spreadsheet Pin
darkelv7-Apr-08 4:14
darkelv7-Apr-08 4:14 
GeneralRe: Dynamically add TabPages to my form depending on the number of worksheets in a spreadsheet Pin
Walaza7-Apr-08 4:54
Walaza7-Apr-08 4:54 
GeneralRe: Dynamically add TabPages to my form depending on the number of worksheets in a spreadsheet Pin
lsconyer7-Apr-08 5:07
lsconyer7-Apr-08 5:07 
GeneralRe: Dynamically add TabPages to my form depending on the number of worksheets in a spreadsheet Pin
Walaza7-Apr-08 5:59
Walaza7-Apr-08 5:59 
GeneralRe: Dynamically add TabPages to my form depending on the number of worksheets in a spreadsheet Pin
lsconyer7-Apr-08 6:57
lsconyer7-Apr-08 6:57 
GeneralRe: Dynamically add TabPages to my form depending on the number of worksheets in a spreadsheet Pin
Walaza7-Apr-08 20:31
Walaza7-Apr-08 20:31 
When I uncomment the line: dgOutput = new DataGridView(); I get the ff error: 'No row can be added to a DataGridView control that does not have columns. Columns must be added first.'
Is there anything else I need to add to the code below:

TabControl tbControl = new TabControl();
this.Controls.Add(tbControl);
tbControl.Dock = DockStyle.Bottom;
tbControl.Height = 660;
TabPage page;


foreach (Worksheet sheet in sheets)
{
page = new TabPage(sheet.Name.ToString());
dgOutput = new DataGridView();

//get start and end rows
Object[] startRow = { worksheet.get_Range("A4", "O4") };
int endRow = worksheet.Cells.SpecialCells(XlCellType.xlCellTypeLastCell, Type.Missing).Row;

//Check if all columns are according to spec
if ((worksheet.get_Range("A3", "A3").Text.ToString() == "Template") &&
(worksheet.get_Range("B3", "B3").Text.ToString() == "Error Code") &&
(worksheet.get_Range("C3", "C3").Text.ToString() == "Error Name") &&
(worksheet.get_Range("D3", "D3").Text.ToString() == "Error Description") &&
(worksheet.get_Range("E3", "E3").Text.ToString() == "Error Cause") &&
(worksheet.get_Range("F3", "F3").Text.ToString() == "Source") &&
(worksheet.get_Range("G3", "G3").Text.ToString() == "Destination") &&
(worksheet.get_Range("H3", "H3").Text.ToString() == "Category") &&
(worksheet.get_Range("I3", "I3").Text.ToString() == "Severity") &&
(worksheet.get_Range("J3", "J3").Text.ToString() == "Threshold") &&
(worksheet.get_Range("K3", "K3").Text.ToString() == "Responsible for Resolution") &&
(worksheet.get_Range("L3", "L3").Text.ToString() == "Action") &&
(worksheet.get_Range("M3", "M3").Text.ToString() == "ECS Resubmit Y/N") &&
(worksheet.get_Range("N3", "N3").Text.ToString() == "ECS Auto Resubmit Y/N") &&
(worksheet.get_Range("O3", "O3").Text.ToString() == "ECS XML Editing Y/N") &&
(worksheet.get_Range("P4", "P4").Text.ToString() == "ECS Client Notification Y/N – If Yes, supply info") &&
(worksheet.get_Range("Q4", "Q4").Text.ToString() == "Notification Type Email SMS or Both") &&
(worksheet.get_Range("R4", "R4").Text.ToString() == "E-Mail Group") &&
(worksheet.get_Range("S4", "S4").Text.ToString() == "SMS Number") &&
(worksheet.get_Range("T4", "T4").Text.ToString() == "Escalation Y/N") &&
(worksheet.get_Range("U4", "U4").Text.ToString() == "Escalate to who?"))
{
//MessageBox.Show("The headings in the spreadsheet are correct! \nYou may proceed.","Headings", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else
{
MessageBox.Show("The Headings should be: \nTemplate, Error Code, Error Name," +
" Error Description, Error Cause, Source, Destination, Category, Severity, Threshold, Responsible for Resolution, Action,ECS Resubmit Y/N, " +
" ECS Auto Resubmit Y/N, ECS XML Editing Y/N, ECS Client Notification Y/N – If Yes, supply info, " +
" Notification Type Email SMS or Both, E-Mail Group, SMS Number, Escalation Y/N, Escalate to who?, " +
". \n\nPlease load the correct file or Click the 'Create Blank Template' button to get a blank Template.", "Error : Headings", MessageBoxButtons.OK, MessageBoxIcon.Error);

}

//Check if all the required tables are there
if ((worksheet.get_Range("H3", "H3").Text.ToString() == "Category") &&
(worksheet.get_Range("I3", "I3").Text.ToString() == "Severity"))
{
//MessageBox.Show("All the required tables were found \nYou may proceed.", "Required Tables", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else
{
MessageBox.Show("The following tables are required: \nCategory, Severity\n\nPlease ensure that these tables exist.",
"Error : Required Tables", MessageBoxButtons.OK, MessageBoxIcon.Error);
System.Windows.Forms.Application.Exit();
ExcelObj.Visible = false;
}


// loop through the rows of the spreadsheet and place each row in the datagrid
for (int i = 5; i <= endRow; i++)
{
Microsoft.Office.Interop.Excel.Range range = worksheet.get_Range("A" + i.ToString(), "Z" + i.ToString());
System.Array myvalues = (System.Array)range.Cells.Value2;

string[] strArray = ConvertToStringArray(myvalues);

//Add the rows from the spreadsheet to the datagrid
DataGridViewRow row = new DataGridViewRow();
Object[] vals = strArray;
row.CreateCells(dgOutput, vals);
dgOutput.Rows.Add(row);
}

page.Controls.Add(dgOutput);
tbControl.TabPages.Insert(0, page);

}
}
catch (Exception EX)
{
MessageBox.Show("Error: " + EX.Message, "Error opening Excel..");
}

It seems like I am very close to completing this. Please help.

Mvelo Walaza
Developer
Telkom SA

GeneralRe: Dynamically add TabPages to my form depending on the number of worksheets in a spreadsheet Pin
lsconyer8-Apr-08 0:37
lsconyer8-Apr-08 0:37 
GeneralRe: Dynamically add TabPages to my form depending on the number of worksheets in a spreadsheet Pin
Walaza8-Apr-08 2:52
Walaza8-Apr-08 2:52 
GeneralRe: Dynamically add TabPages to my form depending on the number of worksheets in a spreadsheet Pin
lsconyer8-Apr-08 3:30
lsconyer8-Apr-08 3:30 
GeneralRe: Dynamically add TabPages to my form depending on the number of worksheets in a spreadsheet Pin
Walaza8-Apr-08 4:33
Walaza8-Apr-08 4:33 
GeneralRe: Dynamically add TabPages to my form depending on the number of worksheets in a spreadsheet Pin
Walaza8-Apr-08 20:08
Walaza8-Apr-08 20:08 
GeneralRe: Dynamically add TabPages to my form depending on the number of worksheets in a spreadsheet [modified] Pin
lsconyer9-Apr-08 1:48
lsconyer9-Apr-08 1:48 
GeneralRe: Dynamically add TabPages to my form depending on the number of worksheets in a spreadsheet Pin
Walaza9-Apr-08 3:30
Walaza9-Apr-08 3:30 
GeneralRe: Dynamically add TabPages to my form depending on the number of worksheets in a spreadsheet Pin
lsconyer9-Apr-08 3:46
lsconyer9-Apr-08 3:46 
GeneralRe: Dynamically add TabPages to my form depending on the number of worksheets in a spreadsheet Pin
Walaza9-Apr-08 4:21
Walaza9-Apr-08 4:21 
GeneralRe: Dynamically add TabPages to my form depending on the number of worksheets in a spreadsheet Pin
lsconyer9-Apr-08 6:09
lsconyer9-Apr-08 6:09 
QuestionHow to write a text in a video files Pin
Smithakrishnan7-Apr-08 2:16
Smithakrishnan7-Apr-08 2:16 
GeneralCustom treeview woes Pin
lsconyer7-Apr-08 2:14
lsconyer7-Apr-08 2:14 
Generalgprs Pin
sbk197-Apr-08 1:52
sbk197-Apr-08 1:52 
GeneralRe: gprs Pin
Dave Kreskowiak7-Apr-08 4:24
mveDave Kreskowiak7-Apr-08 4:24 
GeneralRe: gprs Pin
Luc Pattyn7-Apr-08 4:40
sitebuilderLuc Pattyn7-Apr-08 4:40 
GeneralRe: gprs Pin
Dave Kreskowiak7-Apr-08 6:43
mveDave Kreskowiak7-Apr-08 6:43 
GeneralProblem with merging 2 DataTables Pin
kallileo7-Apr-08 1:26
kallileo7-Apr-08 1:26 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.