搜档网
当前位置:搜档网 › dataGridView导出Excel

dataGridView导出Excel

dataGridView导出Excel
dataGridView导出Excel

添加com中引用microsoft excel 11.0 object library

添加引用using Microsoft.Office.Interop.Excel;

public static void print(DataGridView dataGridView1)

{//导出到execl

try

{

if (dataGridView1.Rows.Count == 0)

return;

Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Applicati on();

excel.Application.Workbooks.Add(true);

excel.Visible = true;

//生成字段名称

for (int i = 0; i < dataGridView1.Columns.Count; i++)

{

excel.Cells[1, i + 1] = dataGridView1.Columns.HeaderText;

}

//填充数据

for (int i = 0; i < dataGridView1.Rows.Count - 1; i++)

{

for (int j = 0; j < dataGridView1.Columns.Count; j++)

{

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();

}

}

}

}

catch (Exception ex)

{

MessageBox.Show(ex.Message, "错误提示");

}

}

很好很强大!

///

///方法,导出DataGridView中的数据到Excel文件

///

///

/// add com "Microsoft Excel 11.0 Object Library"

/// using Excel=Microsoft.Office.Interop.Excel;

/// using System.Reflection;

///

/// DataGridView

public static void DataGridViewToExcel(DataGridView dgv)

{

#region 验证可操作性

//申明保存对话框

SaveFileDialog dlg = new SaveFileDialog();

//默然文件后缀

dlg.DefaultExt = "xls ";

//文件后缀列表

dlg.Filter = "EXCEL文件(*.XLS)|*.xls ";

//默然路径是系统当前路径

dlg.InitialDirectory = Directory.GetCurrentDirectory();

//打开保存对话框

if (dlg.ShowDialog() == DialogResult.Cancel) return;

//返回文件路径

string fileNameString = dlg.FileName;

//验证strFileName是否为空或值无效

if (fileNameString.Trim() == " ")

{ return; }

//定义表格内数据的行数和列数

int rowscount = dgv.Rows.Count;

int colscount = dgv.Columns.Count;

//行数必须大于0

if (rowscount <= 0)

{

MessageBox.Show("没有数据可供保存 ", "提示 ", MessageBoxButtons.OK, https://www.sodocs.net/doc/505271234.html,rmation);

return;

}

//列数必须大于0

if (colscount <= 0)

{

MessageBox.Show("没有数据可供保存 ", "提示 ", MessageBoxButtons.OK, https://www.sodocs.net/doc/505271234.html,rmation);

return;

}

//行数不可以大于65536

if (rowscount > 65536)

{

MessageBox.Show("数据记录数太多(最多不能超过65536条),不能保存 ", "提示 ", MessageBoxButtons.OK, https://www.sodocs.net/doc/505271234.html,rmation);

}

//列数不可以大于255

if (colscount > 255)

{

MessageBox.Show("数据记录行数太多,不能保存 ", "提示 ", MessageBoxButtons.OK, https://www.sodocs.net/doc/505271234.html,rmation);

return;

}

//验证以fileNameString命名的文件是否存在,如果存在删除它

FileInfo file = new FileInfo(fileNameString);

if (file.Exists)

{

try

{

file.Delete();

}

catch (Exception error)

{

MessageBox.Show(error.Message, "删除失败 ", MessageBoxButtons.OK, MessageBoxIcon.Warning);

return;

}

}

#endregion

Microsoft.Office.Interop.Excel.Application objExcel = null;

Microsoft.Office.Interop.Excel.Workbook objWorkbook = null;

Microsoft.Office.Interop.Excel.Worksheet objsheet = null;

try

{

//申明对象

objExcel = new Microsoft.Office.Interop.Excel.Application();

objWorkbook = objExcel.Workbooks.Add(Missing.Value);

objsheet = (Microsoft.Office.Interop.Excel.Worksheet)objWorkbook.ActiveSheet;

//设置EXCEL不可见

objExcel.Visible = false;

//向Excel中写入表格的表头

int displayColumnsCount = 1;

for (int i = 0; i <= dgv.ColumnCount - 1; i++)

{

if (dgv.Columns.Visible == true)

{

objExcel.Cells[1, displayColumnsCount] = dgv.Columns.HeaderText.Trim();

displayColumnsCount++;

}

//设置进度条

//tempProgressBar.Refresh();

//tempProgressBar.Visible = true;

//tempProgressBar.Minimum=1;

//tempProgressBar.Maximum=dgv.RowCount;

//tempProgressBar.Step=1;

//向Excel中逐行逐列写入表格中的数据

for (int row = 0; row <= dgv.RowCount - 1; row++)

{

//tempProgressBar.PerformStep();

displayColumnsCount = 1;

for (int col = 0; col < colscount; col++)

{

if (dgv.Columns[col].Visible == true)

{

try

{

objExcel.Cells[row + 2, displayColumnsCount] = dgv.Rows[row].Cells[col].Value.ToS tring().Trim();

displayColumnsCount++;

}

catch (Exception)

{

}

}

}

}

//隐藏进度条

//tempProgressBar.Visible = false;

//保存文件

objWorkbook.SaveAs(fileNameString, Missing.Value, Missing.Value, Missing.Value, Missing.V alue,

Missing.Value, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlShared, Missing.Value, Missing.Value, Missing.Value,

Missing.Value, Missing.Value);

}

catch (Exception error)

{

MessageBox.Show(error.Message, "警告 ", MessageBoxButtons.OK, MessageBoxIcon.Warning);

return;

}

{

//关闭Excel应用

if (objWorkbook != null) objWorkbook.Close(Missing.Value, Missing.Value, Missing.Value);

if (objExcel.Workbooks != null) objExcel.Workbooks.Close();

if (objExcel != null) objExcel.Quit();

objsheet = null;

objWorkbook = null;

objExcel = null;

}

MessageBox.Show(fileNameString + "\n\n导出完毕! ", "提示 ", MessageBoxButtons.OK, https://www.sodocs.net/doc/505271234.html,rmation);

}

如果要从C#中将一些内容导出到Excel,有一个简单的办法新建一个类,然后在导出按钮中调用它就可以了,下面是导出类和调用方法。

导出类:

public class ExportXLS

{

public ExportXLS()

{

}

public static void ExportDataGridViewToExcel(DataGridView dataGridview1)

{

SaveFileDialog saveFileDialog = new SaveFileDialog();

saveFileDialog.Filter = "Execl files (*.xls)|*.xls";

saveFileDialog.FilterIndex = 0;

saveFileDialog.RestoreDirectory = true;

saveFileDialog.CreatePrompt = true;

saveFileDialog.Title = "导出Excel文件到";

DateTime now = DateTime.Now;

saveFileDialog.FileName = now.Year.ToString().PadLeft(2) + now.Month.ToString().PadLeft(2, '0')

+ now.Day.ToString().PadLeft(2, '0') + "-"

+ now.Hour.ToString().PadLeft(2, '0')

+ now.Minute.ToString().PadLeft(2, '0')

+ now.Second.ToString().PadLeft(2, '0');

saveFileDialog.ShowDialog();

Stream myStream;

myStream = saveFileDialog.OpenFile();

StreamWriter sw = new StreamWriter(myStream,

System.Text.Encoding.GetEncoding("gb2312"));

string str = "";

try

{

//写标题

for (int i = 0; i < dataGridview1.ColumnCount; i++) {

if (i > 0)

{

str += "\t";

}

str += dataGridview1.Columns[i].HeaderText;

}

sw.WriteLine(str);

//写内容

for (int j = 0; j < dataGridview1.Rows.Count-1; j++) {

string tempStr = "";

for (int k = 0; k < dataGridview1.Columns.Count; k++) {

if (k > 0)

{

tempStr += "\t";

}

tempStr +=

dataGridview1.Rows[j].Cells[k].Value.ToString();

}

sw.WriteLine(tempStr);

}

sw.Close();

myStream.Close();

}

catch (Exception e)

{

MessageBox.Show(e.ToString());

}

finally

{

sw.Close();

myStream.Close();

}

}

调用方法:

private void 导出ToolStripMenuItem_Click(object sender, EventArgs e) {

ExportXLS.ExportDataGridViewToExcel(dataGridView1);

}

如果还需要其它文件格式,可以在类中红字地方加上你所要的文件格式,如saveFileDialog.Filter = "Execl files (*.xls)|*.xls|All files (*.*)|*.*";

excel导入导出通用方法

1.package https://www.sodocs.net/doc/505271234.html,mon.utils; 2.import java.io.OutputStream; 3.import java.util.List; 4.import javax.servlet.http.HttpServletResponse; 5.import org.apache.struts2.ServletActionContext; 6.import https://www.sodocs.net/doc/505271234.html,ng.reflect.Field; 7. 8.import jxl.Workbook; 9.import jxl.format.Alignment; 10.import jxl.format.Border; 11.import jxl.format.BorderLineStyle; 12.import jxl.format.VerticalAlignment; 13.import https://www.sodocs.net/doc/505271234.html,bel; 14.import jxl.write.WritableCellFormat; 15.import jxl.write.WritableFont; 16.import jxl.write.WritableSheet; 17.import jxl.write.WritableWorkbook; 18./*** 19. * @author lsf 20. */ 21.public class ExportExcel { 22./*************************************************************************** 23. * @param fileName EXCEL文件名称 24. * @param listTitle EXCEL文件第一行列标题集合 25. * @param listContent EXCEL文件正文数据集合 26. * @return 27. */ 28.public final static String exportExcel(String fileName,String[] Title, List listConte nt) { 29. String result="系统提示:Excel文件导出成功!"; 30.// 以下开始输出到EXCEL 31.try { 32.//定义输出流,以便打开保存对话框______________________begin 33. HttpServletResponse response=ServletActionContext.getResponse(); 34. OutputStream os = response.getOutputStream();// 取得输出流 35. response.reset();// 清空输出流 36. response.setHeader("Content-disposition", "attachment; filename="+ new String(fileN ame.getBytes("GB2312"),"ISO8859-1")); 37.// 设定输出文件头 38. response.setContentType("application/msexcel");// 定义输出类型 39.//定义输出流,以便打开保存对话框_______________________end 40. 41./** **********创建工作簿************ */ 42. WritableWorkbook workbook = Workbook.createWorkbook(os);

VB中使用EXCEL输出

Private Sub cmdSwatch_Click() Dim xls As excel.Application Dim xlbook As excel.Workbook 'On Error GoTo exlError Dim i As Integer If Dir(Text1.Text) <> "" Then '此目录下如有同名文件给出提示,并作相应处理 If MsgBox("文件已存在,是否覆盖!", vbYesNo + vbQuestion, "另存为工程造价文件") = vbNo Then Exit Sub Else Kill (Text1.Text) '删除文件 End If End If '************打开工作表*************** Set xls = New excel.Application xls.Visible = True Set xlbook = xls.Workbooks.Add '********************************* For i = 0 To 14 If Check2(i).Value = vbChecked Then Select Case i Case 8 ToExcelJDanJiaSum.ToExcelJDanJiaSum xlbook, xls Case 9 ToExcelADanJiaSum.ToExcelADanJiaSum xlbook, xls Case 10 ToExcelCailiao.ToExcelCailiao xlbook, xls

Case 11 ToExcelTsf.ToExcelTsf xlbook, xls Case 12 ToExcelZgcl.ToExcelZgcl xlbook, xls End Select End If Next For i = 0 To 6 If Check3(i).Value = vbChecked Then Select Case i Case 0 ToExcelMan.ToExcelMan xlbook, xls Case 1 ToExcelFSD_CL.ToExcelFSD_CL xlbook, xls Case 2 ToExcelHNT.ToExcelHNT xlbook, xls Case 3 ToExcelZsf.ToExcelZsf xlbook, xls Case 4 ToExcelJingChang.ToExcelJingChang xlbook, xls Case 5 ToExcelJDanJia.ToExcelJDanJia xlbook, xls Case 6 ToExcelADanJia.ToExcelADanJia xlbook, xls End Select End If Next xlbook.SaveAs Text1.Text '保存EXCEL文件

用VB操作excel方法汇总

用VB操作excel方法汇总 Private Sub Command3_Click() Dim i As Long Dim j As Long Dim objExl As Excel.Application '声明对象变量 Me.MousePointer = 11 '改变鼠标样式 Set objExl = New Excel.Application '初始化对象变量 objExl.SheetsInNewWorkbook = 1 '将新建的工作薄数量设为1 objExl.Workbooks.Add '增加一个工作薄 objExl.Sheets(objExl.Sheets.Count).Name = "book1" '修改工作薄名称 objExl.Sheets.Add , objExl.Sheets("book1") '增加第二个工作薄在第一个之后 objExl.Sheets(objExl.Sheets.Count).Name = "book2" objExl.Sheets.Add , objExl.Sheets("book2") '增加第三个工作薄在第二个之后 objExl.Sheets(objExl.Sheets.Count).Name = "book3" objExl.Sheets("book1").Select '选中工作薄 For i = 1 To 50 '循环写入数据 For j = 1 To 5 If i = 1 Then objExl.Selection.NumberFormatLocal = "@" '设置格式为文本 objExl.Cells(i, j) = " E " & i & j Else objExl.Cells(i, j) = i & j End If Next Next objExl.Rows("1:1").Select '选中第一行 objExl.Selection.Font.Bold = True '设为粗体 objExl.Selection.Font.Size = 24 '设置字体大小 objExl.Cells.EntireColumn.AutoFit '自动调整列宽 objExl.ActiveWindow.SplitRow = 1 '拆分第一行 objExl.ActiveWindow.SplitColumn = 0 '拆分列 objExl.ActiveWindow.FreezePanes = True '固定拆分 objExl.ActiveSheet.PageSetup.PrintTitleRows = "$1:$1" '设置打印固定行 objExl.ActiveSheet.PageSetup.PrintTitleColumns = "" '打印标题 objExl.ActiveSheet.PageSetup.RightFooter = "打印时间: " & _ For mat(Now, "yyyy年mm月dd日 hh:MM:ss") objExl.ActiveWindow.View = xlPageBreakPreview '设置显示方式 objExl.ActiveWindow.Zoom = 100 '设置显示大小 '给工作表加密码 objExl.ActiveSheet.Protect "123", DrawingObjects:=True, _ Contents:=True, Scenarios:=True objExl.Application.IgnoreRemoteRequests = False

.NET页面数据导出excel表方法

public void CreateExcel(DataSet ds,string typeid,string FileName) { HttpResponse resp; resp = Page.Response; resp.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312"); resp.AppendHeader("Content-Disposition", "attachment;filename=" + FileName); string colHeaders= "", ls_item=""; int i=0; //定义表对象与行对像,同时用DataSet对其值进行初始化 DataTable dt=ds.Tables[0]; DataRow[] myRow=dt.Select(""); // typeid=="1"时导出为EXCEL格式文件;typeid=="2"时导出为XML格式文件if(typeid=="1") { //取得数据表各列标题,各标题之间以\t分割,最后一个列标题后加回车符for(i=0;i colHeaders+=dt.Columns[i].Caption.ToString()+"\t"; colHeaders +=dt.Columns[i].Caption.ToString() +"\n"; //向HTTP输出流中写入取得的数据信息 resp.Write(colHeaders); //逐行处理数据 foreach(DataRow row in myRow) { //在当前行中,逐列获得数据,数据之间以\t分割,结束时加回车符\n for(i=0;i ls_item +=row[i].ToString() + "\t"; ls_item += row[i].ToString() +"\n"; //当前行数据写入HTTP输出流,并且置空ls_item以便下行数据 resp.Write(ls_item); ls_item=""; } } else { if(typeid=="2") { //从DataSet中直接导出XML数据并且写到HTTP输出流中 resp.Write(ds.GetXml()); } } //写缓冲区中的数据到HTTP头文件中 resp.End(); }

VB将数据导出到EXCEL

'************************************************************************* '** '** VB将数据导出到EXCEL,没有安装EXCEL的一样也可以导出. '** '** 调用方式: s_Export2Excel(Ado.Recordset) 或s_Export2Excel(Rds.RecordSet) '** 支持Rds 与Ado 的记录导出 '** '************************************************************************* '得到所有数据类型,有些数据类型EXCEL不支持,已经替换掉 Public Function f_FieldType$(ByVal sType&) Dim iRe$ Select Case sType Case 2, 3, 20 iRe = "int " Case 5 iRe = "float " Case 6 iRe = "money " Case 131 iRe = "numeric " Case 4 iRe = "real " Case 128 iRe = "binary " Case 204 iRe = "varbinary " Case 11 iRe = "bit " Case 129, 130 iRe = "char " Case 17, 72, 131, 200, 202, 204 iRe = "varchar " Case 201, 203 iRe = "text " Case 7, 135 iRe = "datetime " Case 205 iRe = "image " Case 128 iRe = "timestamp " End Select f_FieldType = iRe

C# 导出Excel 表

using System; using System.Collections.Generic; using https://www.sodocs.net/doc/505271234.html,ponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Reflection; using System.IO; namespace ExcelTest { public partial class frmMain : Form { public frmMain() { InitializeComponent(); } string[] ExcelColumTitle ={ "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z" }; int[] ExcelColumWidth ={10,15,15,12,12,12,20 };//各列宽度 private void btnOk_Click(object sender, EventArgs e) { this.Enabled = false;

Excel.Application excelKccx = new Excel.Application();//创建excel对象 excelKccx.Workbooks.Add(true);//创建excel工作薄 int row = 2; //把数据表的各个信息输入到excel表中 for (int i = 0; i < dataGridView1.Columns.Count; i++)//取字段名 { excelKccx.Cells[1, i + 1] = dataGridView1.Columns[i].Name.ToString(); } for (int i = 0; i < dataGridView1.Rows.Count; i++)//取记录值 { for (int j = 0; j < dataGridView1.Columns.Count; j++) { excelKccx.Cells[row, j + 1] = dataGridView1.Rows[i].Cells[j].Value.ToString(); } row++; } for (int i = 0; i < dataGridView1.Columns.Count; i++) { excelKccx.get_Range(ExcelColumTitle[i]+(i+1), Type.Missing).ColumnWidth =ExcelColumWidth[i] ; //宽度设置 } for (int i = 0; i <= dataGridView1.Rows.Count; i++) { excelKccx.get_Range("A" + (i + 1), Type.Missing).RowHeight = 14.25; //高度设置 } excelKccx.Visible = true;//使excel可见*/ } private void frmMain_Load(object sender, EventArgs e) { List list = new List(); string[] tempArray = Directory.GetFileSystemEntries(@"new\"); for (int i = 0; i < tempArray.Length; i++) { string tempLine = ""; string tempAll = ""; string tempA = "";//编号 string tempB = "";//所属人 string tempC = "";//概览

VB程序导出数据到Excel

vb导出数据到Excel Public Function ExporToExcel(strOpen As String,cn As ADODB.Connection) '入参为SQL查询语句,cn为当前活动的连接 '********************************************************* '* 名称:ExporToExcel '* 功能:导出数据到EXCEL '* 用法:ExporToExcel(sql查询字符串) '********************************************************* Dim Rs_Data As New ADODB.Recordset Dim Irowcount As Integer Dim Icolcount As Integer Dim FILENAME As String Dim xlApp As New Excel.Application Dim xlBook As Excel.Workbook Dim xlSheet As Excel.Worksheet Dim xlQuery As Excel.QueryT able With Rs_Data If .State = adStateOpen Then .Close End If .ActiveConnection = Cn .CursorLocation = adUseClient .CursorType = adOpenStatic .LockType = adLockReadOnly .Source = strOpen .Open End With With Rs_Data If .RecordCount < 1 Then MsgBox ("没有记录!") Exit Function End If '记录总数 Irowcount = .RecordCount '字段总数 Icolcount = .Fields.Count End With Set xlApp = CreateObject("Excel.Application") Set xlBook = Nothing Set xlSheet = Nothing

DataGrid导出EXCEL的几个方法(WebControl)

DataGirdμ?3?EXCELμ?????·?·¨£¨WebControl£? using System; using System.Data; using System.Text; using System.Web; using System.Web.UI; using System.Diagnostics; using System.Web.UI.WebControls; using System.Web.UI.HtmlControls; using System.Data.SqlClient; using System.Collections; namespace bookstore { ///

/// myExcel μ??aòa?μ?÷?£ /// public class myExcel { public myExcel() { } /// /// ??DATAGRIDμ?3??aEXCEL???t·?·¨ò?, /// 2?êyê?:òaμ?3?μ?DATAGRIDμ?IDoíòa±£′???à′μ?EXCEL???t?? /// /// page /// datagrid /// filename private void OutExcel(Page myPage,DataGrid dg,string name) { HttpResponse Response; Response=myPage.Response; string name1="attachment;filename="+name+".xls"; dg.Visible=true;

html导出excel的方法(简单)

html导出excel的方法(简单) 在html实现打印和导出excel的实现: 2006/11/05 01:54 P.M. 在所要打印和导如的EXCES的table 加个如 id = "PrintA" 在打印按纽上注册监听如:onclick="javascript:AllAreaWord(); 在加上如下内容: