1. 程式人生 > >winfrom—DataGridView匯出Excel,並根據內容自動調整列寬

winfrom—DataGridView匯出Excel,並根據內容自動調整列寬

 public static void ToExcel(DataGridView dataGridView1)
        {
            Microsoft.Office.Interop.Excel.Range xlRang;
            try
            {
                //沒有資料的話就不往下執行  
                if (dataGridView1.Rows.Count == 0)
                {
                    return;
                }
                //例項化一個Excel.Application物件  
                Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
                //讓後臺執行設定為不可見,為true的話會看到開啟一個Excel,然後資料在往裡寫  
                excel = new Microsoft.Office.Interop.Excel.Application();
                excel.Visible = false;
                //新增加一個工作簿,Workbook是直接儲存,不會彈出儲存對話方塊,加上Application會彈出儲存對話方塊,值為false會報錯  
                excel.Application.Workbooks.Add(true);
                //生成Excel中列頭名稱  
                for (int i = 0; i < dataGridView1.Columns.Count; i++)
                {
                    if (dataGridView1.Columns[i].Visible == true)
                    {
                        excel.Cells[1, i + 1] = dataGridView1.Columns[i].HeaderText;
                    }
                }
                //把DataGridView當前頁的資料儲存在Excel中  
                for (int i = 0; i < dataGridView1.Rows.Count; i++)
                {
                    System.Windows.Forms.Application.DoEvents();
                    for (int j = 0; j < dataGridView1.Columns.Count; j++)
                    {
                        if (dataGridView1.Columns[j].Visible == true)
                        {
                            if (dataGridView1[j, i].ValueType == typeof(string))
                            {
                                excel.Cells[i + 2, j + 1] = "'" + dataGridView1[j, i].Value.ToString();
                            }
                            else
                            {
                                excel.Cells[i + 2, j + 1] = dataGridView1[j, i].Value.ToString();
                            }
                        }
                    }

                }

//根據內容調整列寬

                xlRang = excel.Columns;
                xlRang.EntireColumn.AutoFit(); 
                //設定禁止彈出儲存和覆蓋的詢問提示框
                excel.DisplayAlerts = false;
                excel.AlertBeforeOverwriting = false;
                //儲存excel檔案  
                excel.Save("D:" + "\\KKHMD.xls");
                //確保Excel程序關閉  
                excel.Quit();
                excel = null;
                GC.Collect();//如果不使用這條語句會導致excel程序無法正常退出,使用後正常退出
                MessageBox.Show("檔案已經成功匯出!", "資訊提示");
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "錯誤提示");
            }
        }

相關推薦

winfromDataGridView匯出Excel根據內容自動調整

 public static void ToExcel(DataGridView dataGridView1)         {             Microsoft.Office.Interop.Excel.Range xlRang;             t

WPF學習筆記(3):ListView根據內容自動調整

DataGrid中,只要不設定DataGrid的寬度和列寬度,或者將寬度設定為Auto,那麼表格就會根據內容自動調整寬度,以顯示所有內容。但如果是ListView,按以上方法設定,卻達不到列寬自動調整的效果, 列寬在控制元件第一次載入的時候已經確定,之後不會隨著某列資料長度的增加和減少而改變列寬。找了很多方法

jtable根據內容自動調整

JTable table = new JTable();table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);有5個引數可進行設定,根據自己的需要修改吧!AUTO_RESIZE_OFF 不自動調整列的寬度;使用滾動條。AUTO_R

GridView根據內容自動設定、行高

列寬  protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)         {             if (e.Row.RowType == DataControlR

Spring Boot實戰之匯出excel上傳存入Azure Storage

Spring Boot實戰之匯出excel 本文使用Apache POI實現excel文件的匯出。 實現從資料庫讀取資料——生成excel——上傳到AzureStorage的流程 資料庫操作,及檔案上傳AzureStorage的流程可以參考之前的文章 http://blog

C# DataGridView匯出Excel設定單元格合併隱藏行

不得不承認,做程式需要研究。 DataGridView匯出Excel的原始碼 using System.Windows.Forms;using System.Collections.Generic;using System;using Microsoft.Office.In

textbox根據內容自動調整高度

高度 多行模式 eas textbox box 測量 屬性 ret height 首先將Textbox改為多行模式,設置MutliLine屬性為True,對於textbox中文本有回車的,直接通過textbox.lines.count()可以獲取到行數。 但是單行無回車的

window.onload and showModalDialog根據內容自動調整視窗大小

 1 showModalDialog根據內容自動調整視窗大小 :在對話方塊的頁面中加入如下程式碼: window.onload = function()      { if( document.body.scrollWidth > (window.screen.ava

使用poi導出Excel設定單元格內容類型拋出異常

sdro spa ppr 相同 值類型 setfill dropdown 整數 csdn 本例子使用的是HSSF,為Excel2003提供處理方案。 設定為輸入類型為數值 import org.apache.poi.hssf.usermodel.DVConstraint;

C#匯出Excel某單元格內容長度超過255 的解決方法

只需要將該列首個單元格指定為memo型別就可以了! C# code publicstaticvoid ToExcel(DataTable dtSource, string strPath, string strSheetName) { System.Data.OleD

django 一鍵生成excel表格下載到本地根據時間刪除檔案上傳excel檔案

from django.http.response import HttpResponse, JsonResponse import datetime import os import xlwt import xlrd from django.http import Stre

python3 簡單實現從csv文件中讀取內容內容進行分類統計

tmp spa writer ict 打開文件 while 類型 spl blog 新手python剛剛上路,在實際工作中遇到如題所示的問題,嘗試使用python3簡單實現如下,歡迎高手前來優化import csv #打開文件,用with打開可以不用去特意關閉file了

在ASP.NET MVC中利用Aspose.cells 將查詢出的數據導出為excel在瀏覽器中下載。

width tdi 新增 column 需求 options 解決 印象 ats 正題前的嘮叨 本人是才出來工作不久的小白菜一顆,技術很一般,總是會有遇到一些很簡單的問題卻不知道怎麽做,這些問題可能是之前解決過的。發現這個問題,想著提升一下自己的技術水平,將一些學的新的‘好

鼠標滑過元素div顯示根據scrollTop向下移動

hover settime pos offset body ide mage bsp ble 如上圖所示,通道有很多個,表格只有一個。 註意:滑過通道時鼠標如果停留在上面,那麽表格才顯示,鼠標滑過表格時,表格不消失 <div id="lineContent">

無限極結構循環不適用任何數組函數一次循環根據給出的root 快速篩選

PHP 無限極分類 一次循環 不使用任何函數 <?php$nodesArrays = [[‘id‘ => 1, ‘pid‘ => 0, ‘name‘ => ‘a‘],[‘id‘ => 2, ‘pid‘ => 0, ‘name‘ => ‘b‘],[‘id

自定義Editext 底部下劃線根據焦點有無改變顏色

 最近一個專案效果,輸入框只保留底部下劃線,並可以根據是否獲取到焦點變色。首先想到了自定義View。但是感覺為這麼個小功能,有點大材小用。查了一下資料,發現使用自定義背景樣式就可以簡單的實現。特此記錄。 首先,需要繪製繪製一個Edittext的背景邊框。填充色設定為透明 <

Java讀取1G以上的txt檔案內容進行解析,利用BufferedReader設定快取大小

讀取檔案路徑 ,讀入 使用帶緩衝的輸入輸出流,效率更高,速度更快。建立一個內部緩衝區陣列並將其儲存在 buf 中,該buf的大小預設為8192。 File file = new File(filepath);    BufferedInputStream fis = ne

編寫一個模組含char_freq_table()函式。傳入檔名統計檔案中的所有英文字元的出現次數忽略大小寫的區別根據次數的高低列印字元以及頻率到螢幕

編寫一個模組,包含char_freq_table()函式。傳入一個檔名,統計檔案中的所有 英文字元的出現次數,忽略大小寫的區別,並根據次數的高低列印字元以及頻率到 螢幕 如果有更好的思路,歡迎交流 因為時間問題就直接寫在一個檔案裡了,主要實現了統計檔案中的所出現的各個字元以及他的次數

js匯出Excel保留table樣式

正好用到就隨手搜了一個,儲存下來用到可以看看 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Titl