VB C# listview 中的数据导出到excel 文件

前端之家收集整理的这篇文章主要介绍了VB C# listview 中的数据导出到excel 文件前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
//先添加一个button1,text为export to excel

//添加一个saveFileDialog1,filter设置为"Excel 文件(*.xls)|*.xls";


 

 

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Microsoft.Office.Interop.Excel;
using ExcelApplication = Microsoft.Office.Interop.Excel.Application;
using System.Reflection;
using System.IO;


namespace TestExportExcel
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

           
        private void button1_Click(object sender,EventArgs e)
        {

            //string saveFileName = "";
            //saveFileDialog1 = new SaveFileDialog();
            //saveFileDialog1.Filter = "Excel 文件(*.xls)|*.xls";
           // saveFileDialog1.RestoreDirectory = true;           
            //saveFileName = saveFileDialog1.FileName;

            saveFileDialog1.FileName = DateTime.Now.ToString("yyyy-MM-dd"); 
          
           if (saveFileDialog1.ShowDialog() ==DialogResult.OK)
           {             
                TurnToExcel(listView1,"LOG");

           }                        
            
           
          
        }

        
        public void TurnToExcel(ListView listView1,string sheet1)
        {
           
            string Sheetname = sheet1;
            ListView listView = listView1;
            if (listView.Items.Count < 1)
                return;
            try
            {
                ExcelApplication MyExcel = new ExcelApplication();

                MyExcel.Visible = true;   //display excel application;if value set 'false',please enable the ' finally' code below;
                if (MyExcel == null)
                {
                    return;
                }

                Workbooks MyWorkBooks = (Workbooks)MyExcel.Workbooks;

                Workbook MyWorkBook = (Workbook)MyWorkBooks.Add(Missing.Value);

                Worksheet MyWorkSheet = (Worksheet)MyWorkBook.Worksheets[1];


                Range MyRange = MyWorkSheet.get_Range("A1","H1");
                MyRange = MyRange.get_Resize(1,listView.Columns.Count);
                object[] MyHeader = new object[listView.Columns.Count];
                for (int i = 0; i < listView.Columns.Count; i++)
                {
                    MyHeader.SetValue(listView.Columns[i].Text,i);
                }
                MyRange.Value2 = MyHeader;
                MyWorkSheet.Name = Sheetname;

                if (listView.Items.Count > 0)
                {
                    MyRange = MyWorkSheet.get_Range("A2",Missing.Value);
                    object[,] MyData = new Object[listView.Items.Count,listView.Columns.Count];
                    for (int j = 0; j < listView1.Items.Count; j++)
                    {
                        ListViewItem lvi = listView1.Items[j];
                        for (int k = 0; k < listView.Columns.Count; k++)
                        {

                            MyData[j,k] = lvi.SubItems[k].Text;
                        }

                    }
                    MyRange = MyRange.get_Resize(listView.Items.Count,listView.Columns.Count);
                    MyRange.Value2 = MyData;
                    MyRange.EntireColumn.AutoFit();
                }

               
                 try
               {
                  object missing = System.Reflection.Missing.Value;
                  MyWorkBook.Saved = true;
                  MyWorkBook.SaveAs(saveFileDialog1.FileName,Microsoft.Office.Interop.Excel.XlFileFormat.xlWorkbookNormal,missing,false,Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange,missing);
               }
               catch (Exception e1)
               {
                   MessageBox.Show("Export Error,Maybe the file is opened by other application!\n" + e1.Message);
               }
                /*
                 finally
                     {
                          MyExcel.Quit();
                          System.GC.Collect();
                      }
                 */                  

              // MyExcel = null;

            }
            catch (Exception Err)
            {
                MessageBox.Show(Err.Message);
            }

          } 

        


    }
}

原文链接:https://www.f2er.com/vb/259527.html

猜你在找的VB相关文章