André Parreira Posted March 16, 2009 at 12:02 PM Report Share #250953 Posted March 16, 2009 at 12:02 PM Boas a todos Eu estou a fazer um programa, onde consigo mexer nas celulas de excel a partir de uma daragrid, no vb.net. mas agora so aceita o sheet1, plant ou folha1, so posso abrir a folha de excel da folha 1, este codigo. Dim da As New OleDbDataAdapter("SELECT * FROM [Folha1$]", conexao_Excel) se aparecer como sheet1, vai logo dar erro, como fasso para poder ser kualkuer 1 deles?? Obrigado pla ajuda Link to comment Share on other sites More sharing options...
Julia Posted March 16, 2009 at 12:26 PM Report Share #250954 Posted March 16, 2009 at 12:26 PM Dim da As New OleDbDataAdapter("SELECT * FROM [Folha1$],[sheet1$],[Plan1$]", conexao_Excel) n tnh a certexa... tenta! Link to comment Share on other sites More sharing options...
André Parreira Posted March 16, 2009 at 12:33 PM Author Report Share #250956 Posted March 16, 2009 at 12:33 PM testei, nao deu Obrigado Mas acho que já resolvi esse problema, já consigo criar tudo como ( Folha1) mas agora, aparece sempre, " nao esta no formato esperado) a folha de excel, mas esta tudo como antes. Dim dt As New DataTable Dim conexao_Excel As String = "Provider=Microsoft.Jet.OleDb.4.0;data source=" & direto & ";Extended Properties=Excel 8.0;" Dim da As New OleDbDataAdapter("SELECT * FROM [Folha1$]", conexao_Excel) da.Fill(dt) direto= variavel Nao consigo abrir 2 vezes a mesma folha excel, na 2º diz que o formato não está o espero, mas quando abro a folha excel está na mesma. pode ter haver quando a versao do xml, que se vê a versao no excel2007 do xml, ou qual é? eu estou a usar no programa a 1.0. Depois quando gravo o datagrid quando as alteraçoes que quiser, abro a folha excel, já la estão as alteraçoes, se eu voltar a gravar quando 97-2003, depois já posso voltar a abrir no datagrid, se nao o fizer, diz que o formato nao é o espera. Nao estou a ver onde esta o problema. Obrigado EDIT: Corrigido texto Link to comment Share on other sites More sharing options...
jpaulino Posted March 16, 2009 at 09:50 PM Report Share #251107 Posted March 16, 2009 at 09:50 PM Vê estas soluções: http://www.experts-exchange.com/Programming/Languages/.NET/Visual_Basic.NET/Q_21563285.html Atenção: não estás a escrever num telemóvel. Lê as regras do fórum: 2) Procedimentos e recomendações na criação de tópicos: 2.2) O tópico deve conter o menor número de erros ortográficos possível. Tópicos com 'k' e 'x' não são agradáveis para a leitura dos utilizadores, muito menos sendo esta uma comunidade nacional. Link to comment Share on other sites More sharing options...
André Parreira Posted March 16, 2009 at 10:57 PM Author Report Share #251119 Posted March 16, 2009 at 10:57 PM Boas Peço desculpa sobre os erros, vou ter mais atenção a partir de agora. em relaçao ao link, vou analisar, obrigado pela ajuda André Parreira Link to comment Share on other sites More sharing options...
André Parreira Posted March 17, 2009 at 09:33 AM Author Report Share #251160 Posted March 17, 2009 at 09:33 AM Boas Agradeço pelo site, mas ele não me ajudou muito, continuo com o mesmo erro( não consigo explicar muito bem qual é e entendo que assim fique difícil de tentar ajudar) Quando eu fasso a actualização da folha excel a partir do datagrid que é com este código. Dim fs As New IO.StreamWriter(direto, False) fs.WriteLine("<?xml version=""1.0""?>") fs.WriteLine("<?mso-application progid=""Excel.Folha""?>") fs.WriteLine("<ss:Workbook xmlns:ss=""urn:schemas-microsoft-com:office:spreadsheet"">") fs.WriteLine(" <ss:Styles>") fs.WriteLine(" <ss:Style ss:ID=""1"">") fs.WriteLine(" <ss:Font ss:Bold=""1""/>") fs.WriteLine(" </ss:Style>") fs.WriteLine(" </ss:Styles>") fs.WriteLine(" <ss:Worksheet ss:Name=""Folha1"">") fs.WriteLine(" <ss:Table>") For x As Integer = 0 To dgexcel.Columns.Count - 1 fs.WriteLine(" <ss:Column ss:Width=""{0}""/>", dgexcel.Columns.Item(x).Width) Next 'fs.WriteLine(" <ss:Row ss:StyleID=""1"">") For i As Integer = 0 To dgexcel.Columns.Count - 1 fs.WriteLine(" <ss:Cell>") fs.WriteLine(String.Format(" <ss:Data ss:Type=""String"">{0}</ss:Data>", dgexcel.Columns.Item(i).HeaderText)) fs.WriteLine(" </ss:Cell>") Next fs.WriteLine(" </ss:Row>") For intRow As Integer = 0 To dgexcel.RowCount - 2 fs.WriteLine(String.Format(" <ss:Row ss:Height =""{0}"">", dgexcel.Rows(intRow).Height)) For intCol As Integer = 0 To dgexcel.Columns.Count - 1 fs.WriteLine(" <ss:Cell>") fs.WriteLine(String.Format(" <ss:Data ss:Type=""String"">{0}</ss:Data>", dgexcel.Item(intCol, intRow).Value.ToString)) fs.WriteLine(" </ss:Cell>") Next fs.WriteLine(" </ss:Row>") Next fs.WriteLine(" </ss:Table>") fs.WriteLine(" </ss:Worksheet>") fs.WriteLine("</ss:Workbook>") fs.Close() Acho que é ai que ele esta a fazer alguma alteração na folha excel, porque ele depois quando tento abrir no datagrid, ele diz que o formato não é o esperado. Obrigado pela ajuda Link to comment Share on other sites More sharing options...
André Parreira Posted March 17, 2009 at 08:38 PM Author Report Share #251361 Posted March 17, 2009 at 08:38 PM Boas pessoa (desculpem insistir mas já falta mesmo muito pouco para dar o programa estar acabado) Tenho esta duvida( e espero ter sido a ultima neste projecto) Eu quando a partir do datagrid, guardo numa folha excel alguns dados, depois quando vou voltar a abrir a mesma folha excel pelo datagrid, ele diz que o formato já não é o esperado. Acho que tem haver com o código acima, mas não sei bem. Alguém tem alguma sugestão?? Obrigado Link to comment Share on other sites More sharing options...
Hellblazer Posted March 18, 2009 at 10:36 AM Report Share #251480 Posted March 18, 2009 at 10:36 AM E se abrires pelo excel ele abre bem? There are two ways to write error-free programs; only the third one works. Link to comment Share on other sites More sharing options...
André Parreira Posted March 18, 2009 at 02:12 PM Author Report Share #251543 Posted March 18, 2009 at 02:12 PM Abre, e grava as mudanças que fiz pelo datagrid, tudo certo. mas depois quando vou querer abrir a mesma folha pelo datagrid ja nao da. Link to comment Share on other sites More sharing options...
Hellblazer Posted March 18, 2009 at 03:18 PM Report Share #251556 Posted March 18, 2009 at 03:18 PM o que eu estou a perguntar e se depois das mudanças feitas pela datagrid continuas a conseguir abrir com o excel? There are two ways to write error-free programs; only the third one works. Link to comment Share on other sites More sharing options...
André Parreira Posted March 18, 2009 at 03:21 PM Author Report Share #251558 Posted March 18, 2009 at 03:21 PM Consigo.. ? Link to comment Share on other sites More sharing options...
Hellblazer Posted March 18, 2009 at 03:25 PM Report Share #251560 Posted March 18, 2009 at 03:25 PM e esta a guardar como .xls? ou .xml? There are two ways to write error-free programs; only the third one works. Link to comment Share on other sites More sharing options...
André Parreira Posted March 18, 2009 at 03:31 PM Author Report Share #251563 Posted March 18, 2009 at 03:31 PM Esta como xls. Link to comment Share on other sites More sharing options...
Hellblazer Posted March 18, 2009 at 03:32 PM Report Share #251564 Posted March 18, 2009 at 03:32 PM Supostamente quando gravas tens de apontar o caminho certo? 😛 ve por ai a estensão There are two ways to write error-free programs; only the third one works. Link to comment Share on other sites More sharing options...
André Parreira Posted March 18, 2009 at 03:44 PM Author Report Share #251566 Posted March 18, 2009 at 03:44 PM A extensão é a mesma quando vou buscar a primeira vez, se consigo importar 1 vez, tambem devia conseguir a 2º vez, a extensão nao muda, esta la tambem guardado como xls. Penso que esta no codigo que meti acima onde possa estar o erro, porque é com esse codigo que consigo gravar, e so quando gravo é que não consigo depois voltar a abrir pelo datagrid Obrigado por tentar ajudar Link to comment Share on other sites More sharing options...
Hellblazer Posted March 18, 2009 at 04:26 PM Report Share #251578 Posted March 18, 2009 at 04:26 PM tenta gravar assim http://www.dotnetjohn.com/articles.aspx?articleid=78 Edit: Esquece, desculpa esqueci-me não estas em ASP.NET, deixa procurar melhor There are two ways to write error-free programs; only the third one works. Link to comment Share on other sites More sharing options...
Hellblazer Posted March 18, 2009 at 05:36 PM Report Share #251595 Posted March 18, 2009 at 05:36 PM Criei esta função e está a gravar e a abrir vezes sem conta 😛 Public Sub ExportToExcel(ByVal dg As DataGrid, ByVal pth As String) Dim excel As Object = CreateObject("Excel.Application") System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.CreateSpecificCulture("en-US") Dim MyDT As System.Data.DataTable = CType(dg.DataSource, DataTable) Dim wb As Microsoft.Office.Interop.Excel.Workbook = excel.Workbooks.Add Dim ws As Microsoft.Office.Interop.Excel.Worksheet = wb.Worksheets(1) For c As Integer = 0 To MyDT.Columns.Count - 1 ws.Cells(1, c + 1).Value = MyDT.Columns(c).Caption Next For r As Integer = 0 To MyDT.Rows.Count - 1 For i As Integer = 0 To MyDT.Columns.Count - 1 ws.Cells(r + 2, i + 1).Value = CStr(MyDT.Rows(r).Item(i)) Next Next wb.SaveAs(pth) ws = Nothing wb = Nothing excel.Quit() excel = Nothing End Sub There are two ways to write error-free programs; only the third one works. Link to comment Share on other sites More sharing options...
André Parreira Posted March 18, 2009 at 06:34 PM Author Report Share #251614 Posted March 18, 2009 at 06:34 PM Boas Testei o código que meteste, mas acho que me esta a dar um erro meio basco de resolver. Copiei o código todo, mas não estou a perceber uma coisa. Para que serve o pth. e esse código e para aplicar no botão gravar, como é num botão não tenho que mete Public Sub ExportToExcel(ByVal dg As DataGrid, ByVal pth As String)[glow=red,2,300] Handles btgravar.click[/glow] Obrigado pela ajuda Link to comment Share on other sites More sharing options...
Hellblazer Posted March 19, 2009 at 09:29 AM Report Share #251812 Posted March 19, 2009 at 09:29 AM lol claro que nao podes dizer que isso e um evento do butao porque o evento butao tem como parametro de entrada um object e um eventargs 🙂 dentro do evento do butao e que vais chamar essa função 😞 do tipo Private Sub BtnGravar_Click(Byval sender as System.Object, Byval e as System.EventArgs) Handles btnGravar.Click ExportToExcel(TuaDataGrid, CaminhoParaGravar) End Sub There are two ways to write error-free programs; only the third one works. Link to comment Share on other sites More sharing options...
André Parreira Posted March 19, 2009 at 09:48 AM Author Report Share #251816 Posted March 19, 2009 at 09:48 AM Boas Da erro qaundo meto o nome da minha datagrid Value of type 'System.Windows.Forms.DataGridView' cannot be converted to 'System.Windows.Forms.DataGrid'. Podias explicar resumidamente esse codigo... Obrigado Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now