13-12-2010, 22:19
Olá a todos!
Já há algum tempo que não posto aqui mensagens no fórum, tenho andado a ler bastantes livros sobre programação (C++(aqui o melhor que consegui foi o jogo Snake ) /C#) e a escola não me permite passar muito tempo na programação infelizmente. Mas agora que já não se vai fazer nada na escola, vou aproveitar e recomeçar a todo o gás para aprender mais umas coisinhas novas xD.
Então é o seguinte. . .
Tenho um projecto com um timer e duas labels(vamos ignora-las, não são necessárias). Então o utilizador escreve os dados e carrega no botão exportar. Quando carrega abre uma folha do excel com os respectivos dados já inseridos. Mas o problema é outro. Tenho um timer que de 30 em 30 segundos adiciona 3 à variável final. O código que usei é o seguinte:
As variáveis declarei-as como globais. Depois disso então temos o tal botão exportar em que exporta os dados para o excel.
Código:
Pronto aqui não há erros, mas não está a acontecer o que eu queria. Imaginemos que o utilizador carregava botão "Iniciar", o timer iniciava e então de 30 em 30s adicionava 3 a variável final. Quando o utilizador carregasse em exportar o valor de final iria aparecer na célula [5,2] do excel. Mas o que eu quero e que na próxima vez que o utilizador abra o programa isto não reinicie, mas continue com o valor da célula e adicione o novo valor da variável final. Não está a acontecer porque eu tenho ws.Cells[5, 2] = final; antes de ws.Cells[5, 2] = rawValue + final; , mas não sei como hei-de dar a volta a isto. Já tentei user if(File.Exists) mas dá-me um erro. Algo como "cannot convert null to 'double' because it's noon-nullable value" .
Alguma sugestão para resolver isto?
Obrigado
Já há algum tempo que não posto aqui mensagens no fórum, tenho andado a ler bastantes livros sobre programação (C++(aqui o melhor que consegui foi o jogo Snake ) /C#) e a escola não me permite passar muito tempo na programação infelizmente. Mas agora que já não se vai fazer nada na escola, vou aproveitar e recomeçar a todo o gás para aprender mais umas coisinhas novas xD.
Então é o seguinte. . .
Tenho um projecto com um timer e duas labels(vamos ignora-las, não são necessárias). Então o utilizador escreve os dados e carrega no botão exportar. Quando carrega abre uma folha do excel com os respectivos dados já inseridos. Mas o problema é outro. Tenho um timer que de 30 em 30 segundos adiciona 3 à variável final. O código que usei é o seguinte:
Código:
numero++;
if (numero == 5)
{
numero = 0;
final += 3;
}
label1.Text = final.ToString();
As variáveis declarei-as como globais. Depois disso então temos o tal botão exportar em que exporta os dados para o excel.
Código:
Código:
Microsoft.Office.Interop.Excel.Application xla = new Microsoft.Office.Interop.Excel.Application();
Workbook wb = xla.Workbooks.Add(XlSheetType.xlWorksheet);
Worksheet ws = (Worksheet)xla.ActiveSheet;
xla.Visible = true;
ws.Cells[1, 1] = "Primeiro";
ws.Cells[1, 2] = "Último";
ws.Cells[3, 1] = txtprimeiro.Text;
ws.Cells[3, 2] = txtultimo.Text;
ws.Cells[5, 1] = "Tempo:";
ws.Cells[5, 2] = final;
Range a1 = ws.Cells[5, 2];
double rawValue = a1.Value;
ws.Cells[5, 2] = rawValue + final;
string activDir = @"C:";
string newPath = System.IO.Path.Combine(activDir, "exemplo");
System.IO.Directory.CreateDirectory(newPath);
ws.SaveAs(@"C:\exemplo\teste");
Pronto aqui não há erros, mas não está a acontecer o que eu queria. Imaginemos que o utilizador carregava botão "Iniciar", o timer iniciava e então de 30 em 30s adicionava 3 a variável final. Quando o utilizador carregasse em exportar o valor de final iria aparecer na célula [5,2] do excel. Mas o que eu quero e que na próxima vez que o utilizador abra o programa isto não reinicie, mas continue com o valor da célula e adicione o novo valor da variável final. Não está a acontecer porque eu tenho ws.Cells[5, 2] = final; antes de ws.Cells[5, 2] = rawValue + final; , mas não sei como hei-de dar a volta a isto. Já tentei user if(File.Exists) mas dá-me um erro. Algo como "cannot convert null to 'double' because it's noon-nullable value" .
Alguma sugestão para resolver isto?
Obrigado