Exporter des strings vers un file Excel

Textbox1.Text >> "A1" 

Mon objective est d'ouvrir une feuille de calcul Excel existante, d'insert des strings spécifiques dans des cellules spécifiques sur la feuille de calcul, puis de l'imprimer. Comme un bonus supplémentaire, si quelqu'un sait comment je pourrais coder le programme pour ouvrir également cette feuille de calcul pour que l'user puisse le voir, cela serait vraiment utile.

Merci!

Cela peut sembler un peu grossier mais … Cela pourrait vous aider. Vous pouvez simplement créer un file text avec une extension .XLS. Vous pouvez placer du text dans le file où les caractères d'onglet sont reconnus comme séparateurs de colonne dans Excel et les returns de chariot sont reconnus comme séparateurs de lignes dans Excel

 ColA Row1 ColB Row1 ColC Row1 ColA Row2 ColB Row2 ColC Row2 

Dans l'exemple ci-dessus, remplacez les espaces entre les sections avec des tabs, enregistrez-les sur votre disque dur avec une extension .XLS, puis ouvrez dans Excel, vous verrez le text dans des colonnes et des lignes distinctes

Vous pouvez utiliser une connection OLEDB pour mettre à jour la feuille de calcul. Ensuite, vous pouvez faire ce qui suit pour l'imprimer:

  Dim strFile As Ssortingng = "c:\test.xls" Dim objProcess As New System.Diagnostics.ProcessStartInfo With objProcess .FileName = strFile .WindowStyle = ProcessWindowStyle.Hidden .Verb = "print" .CreateNoWindow = True .UseShellExecute = True End With Try System.Diagnostics.Process.Start(objProcess) Catch ex As Exception MessageBox.Show(ex.Message) End Try 

Une fois qu'il a été imprimé, vous pouvez faire un System.Diagnostics.Process.Start("c:\test.xls") simple System.Diagnostics.Process.Start("c:\test.xls") pour ouvrir le classur à afficher.

Alternativement, vous pouvez utiliser une connection OLEDB pour mettre à jour la feuille de calcul. Ensuite, vous pouvez l'ouvrir via interop avec quelque chose comme ça. Vous pouvez également entrer les strings dans le classur en même time (et ne pas utiliser la connection OLEDB). Ajoutez une reference à Microsoft.Office.Interop.Excel.

 Imports Microsoft.Office.Interop Public Class MyExcel Private Sub StartExcel() Dim xlApp As New Excel.Application xlApp.Visible = True Dim xlBook As Excel.Workbook = xlApp.Workbooks.Open("c:\test.xlsx") Dim xlSheet As Excel.Worksheet = xlBook.ActiveSheet Dim xlSheet2 As Excel.Worksheet = xlBook.Worksheets("Sheet 3") xlSheet2.Range("B5").Value2 = "my new ssortingng" xlSheet.Range("A1").Value2 = "my ssortingng" xlBook.PrintPreview() End Sub End Class 

L'utilisation de l'automation Excel est simple, mais n'est recommandée que pour les situations qui sont utilisées par l'user et interactives par l'user, car Excel automatisé peut afficher toutes sortes de dialogs modaux nécessitant une intervention de l'user. Si l'application n'est pas censée être interactive par l'user, il serait préférable d'utiliser quelque chose comme le SDK Open XML pour Office , ou un produit tiers (par exemple, Aspose.Cells , que je m'utilise ), qui fonctionnerait plus vite et ne pas être enclin à s'arrêter pour l'attention de l'user. Dans les applications sans server / user, Microsoft recommand spécifiquement que l'automation des applications Office ne soit pas effectuée et que l'automation des applications Office ne sera pas prise en charge et pourrait violer les exigences de licence dans ces situations.