recorrer leer importar archivo c# .net excel vsto

importar - leer archivo excel c#



¿Cómo abrir un archivo de Excel en C#? (12)

¿Es esta una aplicación comercial o algún software aficionado / de código abierto?

Pregunto esto porque, según mi experiencia, todas las alternativas de manejo de .NET Excel tienen problemas graves, por diferentes razones. Para cosas de aficionado, suelo terminar portando jExcelApi desde Java a C # y usándolo.

Pero si se trata de una aplicación comercial, sería mejor comprar una biblioteca de terceros, como Aspose.Cells . Créame, vale la pena, ya que ahorra mucho tiempo y no es gratis.

Estoy tratando de convertir algunos códigos VBA a C #. Soy nuevo en C #. Actualmente estoy intentando abrir un archivo Excel desde una carpeta y si no existe, créelo. Estoy intentando algo como lo siguiente. ¿Cómo puedo hacer que funcione?

Excel.Application objexcel; Excel.Workbook wbexcel; bool wbexists; Excel.Worksheet objsht; Excel.Range objrange; objexcel = new Excel.Application(); if (Directory("C://csharp//error report1.xls") = "") { wbexcel.NewSheet(); } else { wbexcel.Open("C://csharp//error report1.xls"); objsht = ("sheet1"); } objsht.Activate();


Debe haber instalado Microsoft Visual Studio Tools para Office.

Después de eso, cree un proyecto .NET común y agregue la referencia al objeto COM Microsoft.Office.Interop.Excel.dll través del cuadro de diálogo ''Agregar referencia ...''.

Application excel = new Application(); Workbook wb = excel.Workbooks.Open(path);

Missing.Value es una estructura de reflexión especial para el reemplazo de parámetros innecesarios


Es más fácil ayudarte si dices también lo que está mal, o qué falla cuando lo ejecutas.

Pero de un vistazo rápido has confundido algunas cosas.

Lo siguiente no funciona debido a un par de problemas.

if (Directory("C://csharp//error report1.xls") = "")

Lo que intenta hacer es crear un nuevo objeto de directorio que apunte a un archivo y luego verificar si hubo algún error.

Lo que realmente está haciendo es intentar llamar a una función llamada Directorio () y luego asignar una cadena al resultado. Esto no funcionará, ya que 1 / no tiene una función llamada Directorio (cadena str) y no puede asignar el resultado de una función (solo puede asignar un valor a una variable).

Lo que debe hacer (al menos para esta línea) es lo siguiente

FileInfo fi = new FileInfo("C://csharp//error report1.xls"); if(!fi.Exists) { // Create the xl file here } else { // Open file here }

En cuanto a por qué el código de Excel no funciona, debe verificar la documentación de la biblioteca de Excel que google debería poder proporcionarle.


Importaciones

using Excel= Microsoft.Office.Interop.Excel; using Microsoft.VisualStudio.Tools.Applications.Runtime;

Aquí está el código para abrir una hoja de Excel usando C #.

Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application(); Microsoft.Office.Interop.Excel.Workbook wbv = excel.Workbooks.Open("C://YourExcelSheet.xlsx"); Microsoft.Office.Interop.Excel.Worksheet wx = excel.ActiveSheet as Microsoft.Office.Interop.Excel.Worksheet; wbv.Close(true, Type.Missing, Type.Missing); excel.Quit();

Aquí hay un video compañero sobre cómo abrir una hoja de trabajo de Excel usando C # https://www.youtube.com/watch?v=O5Dnv0tfGv4


Para abrir un archivo, intente esto:

objexcel.Workbooks.Open(@"C:/YourPath/YourExcelFile.xls", missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing,missing, missing);

Debes proporcionar esos argumentos estúpidos que parecen "faltantes". Si estuviera escribiendo el mismo código en VB.Net, no los habría necesitado, pero no puede evitarlos en C #.


Para editar archivos de Excel desde una aplicación C #, recientemente comencé a usar NPOI . Estoy muy satisfecho con eso.


abrir archivo de Excel

System.Diagnostics.Process.Start(@"c:/document.xls");


deberías abrir así

Excel.Application xlApp ; Excel.Workbook xlWorkBook ; Excel.Worksheet xlWorkSheet ; object misValue = System.Reflection.Missing.Value; xlApp = new Excel.ApplicationClass(); xlWorkBook = xlApp.Workbooks.Open("csharp.net-informations.xls", 0, true, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "/t", false, false, 0, true, 1, 0); xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);

fuente: http://csharp.net-informations.com/excel/csharp-open-excel.htm

ruden


Código:

private void button1_Click(object sender, EventArgs e) { textBox1.Enabled=false; OpenFileDialog ofd = new OpenFileDialog(); ofd.Filter = "Excell File |*.xlsx;*,xlsx"; if (ofd.ShowDialog() == DialogResult.OK) { string extn = Path.GetExtension(ofd.FileName); if (extn.Equals(".xls") || extn.Equals(".xlsx")) { filename = ofd.FileName; if (filename != "") { try { string excelfilename = Path.GetFileName(filename); } catch (Exception ew) { MessageBox.Show("Errror:" + ew.ToString()); } } } }


FileInfo fi = new FileInfo("C://test//report.xlsx"); if(fi.Exists) { System.Diagnostics.Process.Start(@"C:/test/report.xlsx"); } else { //file doesn''t exist }


Microsoft.Office.Interop.Excel.Application excapp; excapp = new Microsoft.Office.Interop.Excel.Application(); object misval=System.Reflection.Missing.Value; Workbook wrkbuk = new Workbook(); Worksheet wrksht = new Worksheet(); wrkbuk = excapp.Workbooks._Open(@"C:/Users/.../..._template_v1.0.xlsx", misval, misval, misval, misval, misval, misval, misval, misval, misval, misval, misval, misval); wrksht = (Microsoft.Office.Interop.Excel.Worksheet)wrkbuk.Worksheets.get_Item(2);


private void btnChoose2_Click(object sender, EventArgs e) { OpenFileDialog openfileDialog1 = new OpenFileDialog(); if (openfileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK) { this.btnChoose2.Text = openfileDialog1.FileName; String filename = DialogResult.ToString(); var excelApp = new Excel.Application(); excelApp.Visible = true; excelApp.Workbooks.Open(btnChoose2.Text); } }