• DataTable导入到Excel文件


        public static bool DataTableToExcel(System.Data.DataTable dt, string fileName, bool showFileDialog=false)
            {
                if (showFileDialog)
                {
                    SaveFileDialog saveFileDialog = new SaveFileDialog();
                    saveFileDialog.Filter = "Execl files (*.xls)|*.xls";
                    saveFileDialog.FilterIndex = 0;
                    saveFileDialog.RestoreDirectory = true;
                    saveFileDialog.CreatePrompt = true;
                    saveFileDialog.FileName = fileName;
                    saveFileDialog.Title = "Export Excel File To";
                    // saveFileDialog.ShowDialog();

                    if (saveFileDialog.ShowDialog() == DialogResult.OK)
                        fileName = saveFileDialog.FileName;
                    else
                        return false;
                }
                System.Reflection.Missing miss = System.Reflection.Missing.Value;
                Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.ApplicationClass();
                Microsoft.Office.Interop.Excel.Workbooks books = (Microsoft.Office.Interop.Excel.Workbooks)excel.Workbooks;
                Microsoft.Office.Interop.Excel.Workbook book = (Microsoft.Office.Interop.Excel.Workbook)(books.Add(miss));
                Microsoft.Office.Interop.Excel.Worksheet sheet = (Microsoft.Office.Interop.Excel.Worksheet)book.ActiveSheet;
                if (!string.IsNullOrEmpty(dt.TableName))
                {
                    sheet.Name = dt.TableName;
                }

                int intIndex = 0;
                foreach (DataColumn column in dt.Columns)
                {
                    intIndex++;
                    excel.Cells[1, intIndex] = column.ColumnName;
                }

                int rowCount = dt.Rows.Count;
                int colCount = dt.Columns.Count;
                object[,] dataArray = new object[rowCount, colCount];
                for (int i = 0; i < rowCount; i++)
                {
                    for (int j = 0; j < colCount; j++)
                    {
                        //避免格式不兼容,加上"'"
                        dataArray[i, j] = "'"+dt.Rows[i][j].ToString();
                    }
                }

                sheet.get_Range("A2", sheet.Cells[rowCount + 1, colCount]).Value2 = dataArray;
                sheet.SaveAs(fileName, miss, miss, miss, miss, miss, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange, miss, miss, miss);

                book.Close(false, miss, miss);
                books.Close();
                excel.Quit();

                //System.Runtime.InteropServices.Marshal.ReleaseComObject();   
                System.Runtime.InteropServices.Marshal.ReleaseComObject(sheet);
                System.Runtime.InteropServices.Marshal.ReleaseComObject(book);
                System.Runtime.InteropServices.Marshal.ReleaseComObject(books);
                System.Runtime.InteropServices.Marshal.ReleaseComObject(excel);
                GC.Collect();
                return true;


            }
    View Code
  • 相关阅读:
    pageControl点击白点时会变
    valueForKeyPath获取对象数组的属性
    探讨:通过循环数组或者集合,插入数据库中没有的数据
    Mybatis 中 Oracle 的拼接模糊查询
    Spring boot 中 Mybatis Plus 在 Oracle 新增数据时,主键自增问题
    在IntelliJ IDEA中,SpringBoot项目通过devtools实现热部署
    在 Mybatis 中遇到的那些坑
    华硕飞行堡垒耳机插进去之后再拔出来,电脑就没有声音了
    nyoj 776 删除元素
    nyoj 14 会场安排问题(贪心专题)java
  • 原文地址:https://www.cnblogs.com/51net/p/3286557.html
Copyright © 2020-2023  润新知