Dimensione caratteri excel

mercoledì 08 agosto 2007 - 09.14

metalsoul Profilo | Newbie

Ciao a tutti..quelli che ancora non sono andati in ferie
Sto realizzando un'applicazione che legge da database e scrive su file excel ...
non sto utilizzando la libreria Excel ( e forse per questo sto impazzendo )
bensì sto sfruttando le proprietà di OleDb.
In pratica riesco perfettamente a scrivere su Excel ma vorrei poter impostare le proprietà di ogni singola cella , come ad esempio la dimensione del carattere ,dato che anche se creo un file nuovo excel con le impostazioni che voglio e ci scrivo su...il risultato sono sempre le impostazioni che excel ha di default. Come posso fare?
Posto il codice che sto utilizzando :

Dim xlt As String = "c:\Modello.xls"
Dim m_sConn1 As String
Dim conn As New OleDb.OleDbConnection()
Dim cmd1 As New OleDb.OleDbCommand()
Dim rd As OleDb.OleDbDataReader

m_sConn1 = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" percorsofile ";" & _
"Extended Properties=""Excel 8.0;HDR=NO""" '

conn.ConnectionString = m_sConn1
conn.Open()
cmd1.Connection = conn

cmd1.CommandText = "UPDATE [Allegato G3$A1:A1] SET F1 = '" & CStr(dt.Rows(0)("Ambito")) & "'; "
rd = cmd1.ExecuteReader()
rd.Close()

Il risultato è che nella cella A1:A1 il carattere ha dimensione 12 ... come fare per avere già come risultato la dimensione 8?

Grazie in anticipo

angelotv Profilo | Guru

Io per fare una cosa simile ho aperto excel ho fatto "Registra nuova macro" e poi ho fatto manualmente quello che volevo fare in automatico; excel mi ha creato il programma...
by Angelo

metalsoul Profilo | Newbie

Grazie del consiglio...provero' subito .
Ho notato un altro particolare durante la scrittura dei dati sul foglio excel , e cioè il contenuto(cmq corretto) di ogni singola cella inizia con un apice...
credi sia dovuto ad una formattazione non corretta delle colonne o al fatto che sto importando dati dall'esterno?
Grazie

angelotv Profilo | Guru

Credo sia dovuto al fatto che sto importando dati dall'esterno.
Però a me non capitava (a parte che io usavo assegnamenti tramite Cells(riga, col) quindi è tutto diverso ma prova a vedere se puoi cambiare qualcosa perchè altrimenti la vedo dura far somme aritmetiche tra stringhe di caratteri numerici... ("4"+"4" non fa "8"!!!)


by Angelo

metalsoul Profilo | Newbie

Ho provato in tutti i modi (registrando una nuova macro,formattare ogni singola colonna...) ma comunque la visualizzazione del dato in Excel è sempre preceduta dal'apice ...grrrrrrr . Ho provato allora a rileggere da codice il file excel appena riempito alla ricerca degli apici per ripulirlo..risultato? Non esiste nessun apice ...in pratica solo in visualizzazione riscontro tale errore ( che chiaramente mi blocca la possibilità di far funzioni su excel)..ma non so proprio cosa fare in alternativa.
Grazie lo stesso per i tuoi suggerimenti .
A presto e buone ferie

angelotv Profilo | Guru

Magari se mi lasciano pubblico un sorgente visual basic con una funzione di esportazione dati in excel.
La funzione inizia così...


Option Explicit
Dim OkChkDt As Boolean
Dim ComDt As String, gg As String, mm As String, aa As String, cassa As String
Private Sub ErrExport(fase As String)
MsgBox " Dati non esportati: Errore " & _
Str(Err) & " " & Err.Description, , _
App.EXEName & " Errore in " & fase
End Sub
Private Sub EsportaInExcel()
On Error Resume Next
Dim riga As Integer, colonna As Integer
Dim filexls As String
Dim xlapp As New Excel.Application
Dim Prompt As String, Stile As Long, Titolo As String
If Right(App.Path, 1) = "\" Then
filexls = App.Path & "cassa.xls"
Else
filexls = App.Path & "\" & "cassa.xls"
End If
xlapp.Visible = False
' gestione errori
If Err <> 0 Then
ErrExport "Eliminazione visibilità Foglio "
xlapp.Quit
Exit Sub
End If
xlapp.Workbooks.Open FileName:=filexls
' se il file non esiste lo creo
If Err = 1004 Then
With xlapp
.Workbooks.Add
.Cells(1, 3) = "Banconote"
.Cells(1, 10) = "Monete"
.Cells(1, 1) = "Data"
.Cells(2, 1) = "Rilevazione"
.Cells(2, 2) = "Cassa"
.Cells(2, 3) = "500Euro"
.Cells(2, 4) = "200Euro"
.Cells(2, 5) = "100Euro"
.Cells(2, 6) = "50Euro"
.Cells(2, 7) = "20Euro"
.Cells(2, 8) = "10Euro"
.Cells(2, 9) = "5Euro"
.Cells(2, 10) = "2Euro"
.Cells(2, 11) = "1Euro"
.Cells(2, 12) = "50cent"
.Cells(2, 13) = "20cent"
.Cells(2, 14) = "10cent"
.Cells(2, 15) = "5cent"
.Cells(2, 16) = "2cent"
.Cells(2, 17) = "1cent"
.Cells(1, 18) = "Assegni"
.Cells(2, 18) = "Circolari"
.Cells(1, 19) = "Assegni"
.Cells(2, 19) = "Bancari"
.Cells(2, 20) = "Bancomat"
.Cells(1, 21) = "Carte di"
.Cells(2, 21) = "Credito"
.Cells(1, 22) = "Buoni"
.Cells(2, 22) = "Pasto"
.Range("C1:I1").MergeCells = True
.Range("J1:Q1").MergeCells = True
.Range("A1:V2").Font.Bold = True
.Cells.Select
.Cells.EntireColumn.HorizontalAlignment = xlCenter
.Columns("A:A").Select
.Selection.NumberFormat = "m/d/yyyy"
.Cells.EntireColumn.AutoFit
.Cells(1, 1).Select
.Workbooks(1).SaveAs filexls
End With
ElseIf Err <> 0 Then
ErrExport "Creazione File "
xlapp.Quit
Set xlapp = Nothing
Exit Sub
End If

by Angelo
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5