Bonjour,
Je suis en train de faire un fichier word avec un titre et un tableau avec des valeurs.
Dans une ligne je mets une valeur avec une puissance de 10. Donc la valeur en exposant.
Je fais le code suivant :
Le soucis est le suivant.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63 public static void AddTableauCoefficients( CurveParameters curveParameters ) { object start = 0; object end = 0; MSWord.Range rng0 = m_Word_Document.Range( ref start, ref end ); rng0.FormattedText.ParagraphFormat.Alignment = MSWord.WdParagraphAlignment.wdAlignParagraphCenter; rng0.FormattedText.Text = "TEST Curves"; MSWord.Range rng = m_Word_Document.Range( m_Word_Document.Content.End - 1, m_Word_Document.Content.End - 1 ); int u = 1; int count; count = 1; MSWord.Table theTable = m_Word_Document.Tables.Add( rng, 2, count ); theTable.Borders.InsideLineStyle = MSWord.WdLineStyle.wdLineStyleSingle; theTable.Borders.OutsideLineStyle = MSWord.WdLineStyle.wdLineStyleSingle; for(int i = 0; i < count; i++) { { theTable.Columns[i + 1].Width = 100; theTable.Cell( 1, u ).Range.Text = ( (EMPLACEMENT)i ).GetDescription(); double slope = 0.0000006666; double intercept = 55.4; string str_slope = slope.ToString( "#0.0e0" ); string[] str_slopes = str_slope.Split( new string[] { "e" }, System.StringSplitOptions.None ); string final = str_slopes[0].Replace( ".", "," ) + ".10" + str_slopes[1]; MSWord.Range r = theTable.Cell( 2, u ).Range; r.Text = final; string v = r.Text; r.SetRange( 2, 4 ); r.Font.Superscript = 1; u++; } } m_Word_Document.SaveAs2( m_cheminfichierWord ); m_Word_Document.Close(); m_Word.Quit(); Marshal.FinalReleaseComObject( m_Word ); m_Word = null; }
Pour mettre en exposant, je selectionne le range de la case voulu.
Lorsque je vérifie le contenu,
La variable contient les bonnes valeurs.
Code : Sélectionner tout - Visualiser dans une fenêtre à part string v = r.Text;
Mais quand je mets en exposant,
Cela mets le texte "TEST Curves" en exposant
Code : Sélectionner tout - Visualiser dans une fenêtre à part r.Font.Superscript = 1;
J'ai trouvé le soucis, le SetRange va selectionner le deuxieme jusqu'au quatrieme caractères document complet (ce qui est débile, mais soit).
Maintenant, j'ai modifié comme cela :
Sauf que mainteant, tout le texte de la case est en exposant.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 theTable.Columns[i + 1].Width = 100; theTable.Cell( 1, u ).Range.Text = ( (EMPLACEMENT)i ).GetDescription(); double slope = 0.0000006666; double intercept = 55.4; string str_slope = slope.ToString( "#0.0e0" ); string[] str_slopes = str_slope.Split( new string[] { "e" }, System.StringSplitOptions.None ); string final = str_slopes[0].Replace( ".", "," ) + ".10" + str_slopes[1]; MSWord.Range r = theTable.Cell( 2, u ).Range; r.Text = str_slopes[1]; r.Font.Superscript = 1; r.InsertBefore( str_slopes[0].Replace( ".", "," ) + ".10" ); r.InsertAfter("+ " + intercept.ToString("F2")); u++;
Pourriez vous m'aider ?
Merci.
Florence
Partager