• C# DataSet导出Excel


    //多个DataSet导出Excel文件
    public static void DataSetToExcel(DataSet p_ds,string strSavePath)
    {
        int l_intSheetIndex=1;//多个DataSet导出多个Excel,针对Excel文件中的第一个Sheet
        //实例化Excel对象
        Microsoft.Office.Interop.Excel.Application app=new Microsoft.Office.Interop.Excel.Application();
        //根据Excel对象新建Excel文件
        Microsoft.Office.Interop.Excel.Workbook book=app.Workbooks.Add(true);
        try
        {
            foreach(DataTable dt in p_ds.Tables)
            {
                if(dt!=null && dt.Rows.Count>0)
            {
            object missing=System.Reflection.Missing.Value;
            Microsoft.Office.Interop.Excel.Worksheet sheet;
            //判断Excel文件是否存在Sheet
            //1.不存在就新建Sheet
            //2.存在就开启对应Sheet
            if(book.Worksheets.Count < l_intSheetIndex)
            {
               //新建Sheet
               sheet=(Microsoft.Office.Interop.Excel.Worksheet)book.Worksheets.Add(Type.Missing,book.Worksheets[book.Worksheets.Count],1,Type.Missing);
            }
            //开启对应Sheet
            sheet=(Microsoft.Office.Interop.Excel.Worksheet)book.Worksheets.get_Item(l_intSheetIndex);
            //设置Sheet名
            sheet.Name=dt.TableName;
    
            //取得区域  --取得区域的方式 1.设置整列 2.设置使用的区域
            //整列
            //Range column = ((Range)worksheet.Cells[1, 1]).EntireColumn;(选取A列;方法:先选取A1单元格,然后选取A1单元格所在的这一整列。)
            //使用的区域
            Microsoft.Office.Interop.Excel.Range l_range=sheet.Range[sheet.Cells[1,1],sheet.Cells[dt.Rows.Count+1,dt.Columns.Count]];
            //设置区域格式“@”是文本格式
            l_range.NumberFormatLocal="@";
            int i=0;
            foreach(DataColumn dc in dt.Columns)
            {
                sheet.Cells[1,i+1]=dc.ColumnName;
                i++;
            }
            int j=0;
            foreach(DataRow dr in dt.Rows)
            {
                int k=0;
                foreach(DataColumn dc in dt.Columns)
                {
                sheet.Cells[j+2,k+1]=dr[k].ToString();
                k++;
                }
            }
            book.Saveed=true;
            }
            l_intSheetIndex++;
            }
        ((Microsoft.Office.Interop.Excel.WorkSheet)book.Worksheets.get_Item(1)).Select();
        book.SaveAs(strSavePath);
        book.Close(Type.Missing,Type.Missing,Type.Missing);
        }
        catch(Exception ex)
        {
        throw ex;
        }
        finally
        {
        app.Quit();
        IntPtr t=new IntPtr(app.Hwnd);
        int d=0;
        GetWindowThreadProcessId(t,out d);
        System.Diagenostics.Process p=System.Diagnostics.Process.GetProcessById(d);
        p.Kill();
        }
    }
    
    [DllImport("User32.dll",CharSet=CharSet.Auto)]
    Public static extern int GetWindowThreadProcessId(IntPtr hwnd,out int ID);
  • 相关阅读:
    截取UIImagePickerController的拍照事件
    Xcode报错:run custom shell script '[cp] copy pods resource
    XCode报错:Command /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang failed with exit code 1
    Mac环境下实现alias的重命名命令(永久生效)
    Swift 3.0在集合类数据结构上的一些新变化
    iOS几种简单有效的数组排序方法
    二分法查找、快速排序思想与实现
    iOS10 相册权限
    ios应用版本号设置规则
    iOS白名单设置
  • 原文地址:https://www.cnblogs.com/WarBlog/p/8073997.html
Copyright © 2020-2023  润新知