Bonjour à tous !
Je suis pas développeur logiciel mais je dois faire un petit outil pour mon entreprise. On veut utiliser Grafana pour afficher des données time series d'une base de donnée MySQL 5.7.
Le truc un peu tricky c'est qu'on veut lire des rapports de panne (fichier word) puis reporté le type de panne sur les graphes affichant les données physique de la chaîne de montage(p.ex temperature etc) à la date quand la panne est survenu.
Donc, je dois lire le rapport de panne, trouver le type dans le rapport par keyword et la date, puis remplir une table où figura la date pour la passer à grafana et pointer sur le graphe l’événement panne.
Tout est codé en c#.
Sur Visual Studio j'ai, d'un coté, un projet application console (.NET framwork) qui utilise la libraire MS word object library 16 pour lire les fichiers word (qui fonctionne) et de l'autre un projet web application ASP.NET avec le quelle je peux contrôler ma base de données et qui fonctionne.
Le code pour la lecture (application console) :
Le code pour le contrôle (application web)(je vous ai pas mis les corps de mes fonctions):
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 using System; using System.Windows.Forms; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using Microsoft.CSharp; using Microsoft.Office.Core; using Microsoft.Office.Interop.Word; using Word = Microsoft.Office.Interop.Word; using static System.Windows.Forms.VisualStyles.VisualStyleElement; namespace Test_Word { class Program { [STAThread] static void Main(string[] args) { Word.Application wordObject = new Word.Application(); object file = "C:/Users/Fernandez/Desktop/test1.dot"; object nullobject = System.Reflection.Missing.Value; File.SetAttributes(file.ToString(), FileAttributes.Normal); object Faux = (object)false; object Vrai = (object)true; Document doc = new Document(); Document docs = wordObject.Documents.Add(ref file, ref Faux, ref nullobject, ref Vrai); docs.ActiveWindow.Selection.WholeStory(); docs.ActiveWindow.Selection.Copy(); IDataObject data = Clipboard.GetDataObject(); string text = data.GetData(DataFormats.StringFormat).ToString(); Console.WriteLine(text.Count()); Console.WriteLine(text); docs.Close(ref nullobject, ref nullobject, ref nullobject); Console.WriteLine("Fin"); Console.Read(); } } }
J'ai essayé de faire un seul code entier sous une application web mais ça marche pas, l'application tourne sans s’arrêter et n'affecte pas la base de données...
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 using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using MySql.Data.MySqlClient; using System.Data; using System.IO; namespace WebApplication1 { public partial class Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { MySqlConnection con = new MySqlConnection("server=localhost;user id=root;database=grafana;password = *****; SslMode=none"); con.Open(); string db = "grafana"; string file = "grafana.csv"; //DeleteData(con,db, "id=3628"); //ShowData(con, db); //CreateTableFromFile(con, db,file); con.Close(); } } }
Si des développeur expérimenter pouvait me conseiller comment parvenir a faire tout ça sous une seul application(ou p-t une meilleur solution que comme je suis entrain de faire), ça serait vraiment génial J'ai essayé de chercher comment faire un 'makefile' mais j'ai pas trouvé. J'aurai souhaiter utilisé des fonctions de l'application console dans l'application web.
J'ai pas besoin de faire un logiciel, je peux continuer à bosser sous visual studio 2017 sans problème.
Un grand merci à ceux qui me prendront en pitié et qui me jetteront une main salutaire !
Partager