C中数据导出到Excel表格
更新时间:2023-06-05 02:53:01 阅读量: 实用文档 文档下载
DataGridView 数据导出到Excel
在日常工作中,大家都习惯Office作为办公软件,因此,在开发软件的时,常常会有把数据导出到Excel等Office软件的需求。在此,收集一些常用的导出文件的源程序,希望给大家带来方便。(不断更新)
一、DataSet数据集内数据转化为Excel 1. // 作用:把DataSet数据集内数据转化为Excel、Word文件
2. // 描述:这些关于Excel、Word的导出方法,基本可以实现日常须要,其中有
些方法可以把数据导出后
3. // 生成Xml格式,再导入数据库!有些屏蔽内容没有去掉,保留下来方便学习
参考用之。
4. // 备注:请引用Office相应COM组件,导出Excel对象的一个方法要调用其中
的一些方法和属性。
5. public void DataSetToExcel(DataSet ds,string FileName)
6. {
7. try
8. {
9. //Web页面定义
10. //System.Web.UI.Page mypage=new System.Web.UI.Page();
11.
12. HttpResponse resp;
13. resp=HttpContext.Current.Response;
14. resp.ContentEncoding=System.Text.Encoding.GetEncoding("GB2312");
15. resp.AppendHeader("Content-disposition","attachment;filename="+FileName+
".xls");
16. resp.ContentType="application/ms-excel";
17.
18. //变量定义
19. string colHeaders=null;
20. string Is_item=null;
21.
22. //显示格式定义////////////////
23.
24.
25. //文件流操作定义
26. //FileStream fs=new FileStream(FileName,FileMode.Create,FileAccess.Write);
DataGridView 数据导出到Excel
27. //StreamWriter sw=new
StreamWriter(fs,System.Text.Encoding.GetEncoding("GB2312"));
28.
29. StringWriter sfw=new StringWriter();
30. //定义表对象与行对象,同时用DataSet对其值进行初始化
31. System.Data.DataTable dt=ds.Tables[0];
32. DataRow[] myRow=dt.Select();
33. int i=0;
34. int cl=dt.Columns.Count;
35.
36. //取得数据表各列标题,各标题之间以/t分割,最后一个列标题后加回车符
37. for(i=0;i<cl;i++)
38. {
39. //if(i==(cl-1)) //最后一列,加/n
40. // colHeaders+=dt.Columns[i].Caption.ToString();
41. //else
42. colHeaders+=dt.Columns[i].Caption.ToString()+"/t";
43. }
44. sfw.WriteLine(colHeaders);
45. //sw.WriteLine(colHeaders);
46.
47. //逐行处理数据
48. foreach(DataRow row in myRow)
49. {
50. //当前数据写入
51. for(i=0;i<cl;i++)
52. {
53. //if(i==(cl-1))
54. // Is_item+=row[i].ToString()+"/n";
55. //else
56. Is_item+=row[i].ToString()+"/t";
57. }
58. sfw.WriteLine(Is_item);
59. //sw.WriteLine(Is_item);
60. Is_item=null;
DataGridView 数据导出到Excel
62. resp.Write(sfw);
63. //resp.Clear();
64. resp.End();
65. }
66. catch(Exception e)
67. {
68. throw e;
69. }
70. }
二、DataSet数据集内数据转化为Excel文件(2) 1. /// <summary>
2. /// ExportFiles 的摘要说明。
3. /// 作用:把DataSet数据集内数据转化为Excel文件
4. /// 描述:导出Excel文件
5. /// 备注:请引用Office相应COM组件,导出Excel对象的一个方法要调用其
中的一些方法和属性。
6. /// </summary>
7. public class ExportFiles
8. {
9. private string filePath = "";
10. public ExportFiles(string excel_path)
11. {
12. //
13. // TODO: 在此处添加构造函数逻辑
14. //
15. filePath = excel_path;
16. }
17. /// <summary>
18. /// 将指定的Dataset导出到Excel文件
19. /// </summary>
20. /// <param name="dt"></param>
21. /// <returns></returns>
22. public bool ExportToExcel(System.Data.DataSet ds, string ReportName)
DataGridView 数据导出到Excel
24. if (ds.Tables[0].Rows.Count == 0)
25. {
26. MessageBox.Show("数据集为空");
27. }
28. Microsoft.Office.Interop.Excel._Application xlapp = new ApplicationClass();
29. Workbook xlbook = xlapp.Workbooks.Add(true);
30. Worksheet xlsheet = (Worksheet)xlbook.Worksheets[1];
31. Range range = xlsheet.get_Range(xlapp.Cells[1, 1], xlapp.Cells[1,
ds.Tables[0].Columns.Count]);
32. range.MergeCells = true;
33. xlapp.ActiveCell.FormulaR1C1 = ReportName;
34. xlapp.ActiveCell.Font.Size = 20;
35. xlapp.ActiveCell.Font.Bold = true;
36. xlapp.ActiveCell.HorizontalAlignment =
Microsoft.Office.Interop.Excel.Constants.xlCenter;
37. int colIndex = 0;
38. int RowIndex = 2;
39. //开始写入每列的标题
40. foreach (DataColumn dc in ds.Tables[0].Columns)
41. {
42. colIndex++;
43. xlsheet.Cells[RowIndex, colIndex] = dc.Caption;
44. }
45. //开始写入内容
46. int RowCount = ds.Tables[0].Rows.Count;//行数
47. for (int i = 0; i < RowCount; i++)
48. {
49. RowIndex++;
50. int ColCount = ds.Tables[0].Columns.Count;//列数
51. for (colIndex = 1; colIndex <= ColCount; colIndex++)
52. {
53. xlsheet.Cells[RowIndex, colIndex] = ds.Tables[0].Rows[i][colIndex - 1];//dg[i,
colIndex - 1];
DataGridView 数据导出到Excel
54. xlsheet.Cells.ColumnWidth = ds.Tables[0].Rows[i][colIndex -
1].ToString().Length;
55. }
56. }
57.
58. xlbook.Saved = true;
59. xlbook.SaveCopyAs(filePath);
60. xlapp.Quit();
61. GC.Collect();
62. return true;
63. }
64.
65. public bool ExportToExcelOF(System.Data.DataSet ds, string ReportName)
66. {
67. if (ds.Tables[0].Rows.Count == 0)
68. {
69. MessageBox.Show("数据集为空");
70. }
71. string FileName = filePath;
72.
73. //System.Data.DataTable dt = new System.Data.DataTable();
74. FileStream objFileStream;
75. StreamWriter objStreamWriter;
76. string strLine = "";
77. objFileStream = new FileStream(FileName, FileMode.OpenOrCreate,
FileAccess.Write);
78. objStreamWriter = new StreamWriter(objFileStream,
System.Text.Encoding.Unicode);
79.
80. strLine = ReportName;
81. objStreamWriter.WriteLine(strLine);
82. strLine = "";
83.
84. for (int i = 0; i < ds.Tables[0].Columns.Count; i++)
85. {
DataGridView 数据导出到Excel
86. strLine = strLine + ds.Tables[0].Columns[i].ColumnName.ToString() + " " +
Convert.ToChar(9);
87. }
88. objStreamWriter.WriteLine(strLine);
89. strLine = "";
90.
91. for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
92. {
93. strLine = strLine + (i + 1) + Convert.ToChar(9);
94. for (int j = 1; j < ds.Tables[0].Columns.Count; j++)
95. {
96. strLine = strLine + ds.Tables[0].Rows[i][j].ToString() + Convert.ToChar(9);
97. }
98. objStreamWriter.WriteLine(strLine);
99. strLine = "";
100. }
101. objStreamWriter.Close();
102. objFileStream.Close();
103.
104. //Microsoft.Office.Interop.Excel._Application xlapp = new ApplicationClass(); 105. //Workbook xlbook = xlapp.Workbooks.Add(true);
106. //Worksheet xlsheet = (Worksheet)xlbook.Worksheets[1];
107. //Range range = xlsheet.get_Range(xlapp.Cells[1, 1], xlapp.Cells[1,
ds.Tables[0].Columns.Count]);
108. //range.EntireColumn.AutoFit();
109. //xlapp.Quit();
110. return true;
111. }
112. }
三、生成XML然后转换成Excel方式
参考资源:
/office/Excel_Export.asp?df=100&forumid=329437&fr=51 (源程序)
优点:
DataGridView 数据导出到Excel
a. 服务端不用安装Excel程序。
b. 支持一定的Excel文件格式设置,比如字体大小、颜色、合并单元格等。
缺点:
a. 与Excel 2000不兼容:由于Excel 2000不支持XML,所以以这种方法生成的Excel文件可能在Excel2000中不兼容(毕竟目前还有不少用户的电脑装的是Excel 2000)。 b. 可能不支持Excel文件页边距的设置;不支持Excel文件横向、纵向的设置;不支持Excel模板;
c. 编程工作量比较大;
d. 生成的文件本质上是XML文件,需要“另存为xls”才能变成真正的Excel文件。
e. 性能是好是坏还不清楚,目前还没真正在项目中用过。希望有用过此方案的朋友能介绍一下这个方案的性能。
四、导出GridView到Excel 1. //导出GridView到Excel中的关键之处
2. //用法: ToExcel(GVStaff, TextBox1.Text);
3.
4. public static void ToExcel(System.Web.UI.Control ctl,string FileName)
5. {
6. HttpContext.Current.Response.Charset ="UTF-8";
7. HttpContext.Current.Response.ContentEncoding
=System.Text.Encoding.Default;
8. HttpContext.Current.Response.ContentType ="application/ms-excel";
9. HttpContext.Current.Response.AppendHeader("Content-Disposition","attachm
ent;filename="+""+FileName+".xls");
10. ctl.Page.EnableViewState =false;
11. System.IO.StringWriter tw = new System.IO.StringWriter();
12. HtmlTextWriter hw = new HtmlTextWriter(tw);
13. ctl.RenderControl(hw);
14. HttpContext.Current.Response.Write(tw.ToString());
15. HttpContext.Current.Response.End();
16. }
17.
18. 必须有下面这句!否则不会通过!
19. public override void VerifyRenderingInServerForm(Control control)
20. {
DataGridView 数据导出到Excel
21. // Confirms that an HtmlForm control is rendered for
22. }
五、DataTable导出到Excel 1. using System;
2. using Microsoft.Office.Interop.Excel;
3. using System.Windows.Forms;
4. namespace DongVI
5. {
6. /// <summary>
7. /// DataTable导出到Excel
8. /// 整理:dongVi
9. /// </summary>
10. public class DataTableToExcel
11. {
12. private DataTableToExcel()
13. {
14.
15. }
16. /// <summary>
17. /// 导出Excel
18. /// </summary>
19. /// <param name="dt">要导出的DataTable</param>
20. public static void ExportToExcel(System.Data.DataTable dt )
21. {
22. if (dt == null) return;
23.
24. Microsoft.Office.Interop.Excel.Application xlApp = new
Microsoft.Office.Interop.Excel.Application();
25. if (xlApp == null)
26. {
27. // lblMsg.Text = "无法创建Excel对象,可能您的电脑未安装Excel";
28. MessageBox.Show( "无法创建Excel对象,可能您的电脑未安装Excel" );
29. return;
30. }
DataGridView 数据导出到Excel
31. System.Windows.Forms.SaveFileDialog saveDia = new SaveFileDialog();
32. saveDia.Filter = "Excel|*.xls";
33. saveDia.Title = "导出为Excel文件";
34. if(saveDia.ShowDialog()== System.Windows.Forms.DialogResult.OK
35. && !string.Empty.Equals(saveDia.FileName))
36. {
37. Microsoft.Office.Interop.Excel.Workbooks workbooks = xlApp.Workbooks;
38. Microsoft.Office.Interop.Excel.Workbook workbook =
workbooks.Add(Microsoft.Office.Interop.Excel.XlWBATemplate.xlWBATWorksheet);
39. Microsoft.Office.Interop.Excel.Worksheet worksheet =
(Microsoft.Office.Interop.Excel.Worksheet)workbook.Worksheets[1];//取得sheet1
40. Microsoft.Office.Interop.Excel.Range range = null;
41. long totalCount = dt.Rows.Count;
42. long rowRead = 0;
43. float percent = 0;
44. string fileName = saveDia.FileName;
45. //写入标题
46. for (int i = 0; i < dt.Columns.Count; i++)
47. {
48. worksheet.Cells[1, i + 1] = dt.Columns[i].ColumnName;
49. range = (Microsoft.Office.Interop.Excel.Range)worksheet.Cells[1, i + 1];
50. //range.Interior.ColorIndex = 15;//背景颜色
51. range.Font.Bold = true;//粗体
52. range.HorizontalAlignment =
Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter;//居中
53. //加边框
54. range.BorderAround(Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous,
Microsoft.Office.Interop.Excel.XlBorderWeight.xlThin,
Microsoft.Office.Interop.Excel.XlColorIndex.xlColorIndexAutomatic, null);
55. //range.ColumnWidth = 4.63;//设置列宽
56. //range.EntireColumn.AutoFit();//自动调整列宽
57. //r1.EntireRow.AutoFit();//自动调整行高
58. }
DataGridView 数据导出到Excel
59. //写入内容
60. for (int r = 0; r < dt.DefaultView.Count; r++)
61. {
62. for (int i = 0; i < dt.Columns.Count; i++)
63. {
64. worksheet.Cells[r + 2, i + 1] = dt.DefaultView[r][i];
65. range = (Microsoft.Office.Interop.Excel.Range)worksheet.Cells[r + 2, i + 1];
66. range.Font.Size = 9;//字体大小
67. //加边框
68. range.BorderAround(Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous,
Microsoft.Office.Interop.Excel.XlBorderWeight.xlThin,
Microsoft.Office.Interop.Excel.XlColorIndex.xlColorIndexAutomatic, null);
69. range.EntireColumn.AutoFit();//自动调整列宽
70. }
71. rowRead++;
72. percent = ((float)(100 * rowRead)) / totalCount;
73. System.Windows.Forms.Application.DoEvents();
74. }
75. range.Borders[Microsoft.Office.Interop.Excel.XlBordersIndex.xlInsideHorizont
al].Weight = Microsoft.Office.Interop.Excel.XlBorderWeight.xlThin;
76. if (dt.Columns.Count > 1)
77. {
78. range.Borders[Microsoft.Office.Interop.Excel.XlBordersIndex.xlInsideVertical].
Weight = Microsoft.Office.Interop.Excel.XlBorderWeight.xlThin;
79. }
80. try
81. {
82. workbook.Saved = true;
83. workbook.SaveCopyAs(fileName);
84. }
85. catch (Exception ex)
86. {
87. //lblMsg.Text = "导出文件时出错,文件可能正被打开!/n" + ex.Message;
88. MessageBox.Show( "导出文件时出错,文件可能正被打开!/n" + ex.Message );
89. return;
DataGridView 数据导出到Excel
91.
92. workbooks.Close();
93. if (xlApp != null)
94. {
95. xlApp.Workbooks.Close();
96. xlApp.Quit();
97. int generation = System.GC.GetGeneration(xlApp);
98. System.Runtime.InteropServices.Marshal.ReleaseComObject(xlApp);
99. xlApp = null;
100. System.GC.Collect(generation);
101. }
102. GC.Collect();//强行销毁
103. #region 强行杀死最近打开的Excel进程
104. System.Diagnostics.Process[] excelProc =
System.Diagnostics.Process.GetProcessesByName("EXCEL");
105. System.DateTime startTime = new DateTime();
106. int m, killId = 0;
107. for (m = 0; m < excelProc.Length; m++)
108. {
109. if (startTime < excelProc[m].StartTime)
110. {
111. startTime = excelProc[m].StartTime;
112. killId = m;
113. }
114. }
115. if (excelProc[killId].HasExited == false)
116. {
117. excelProc[killId].Kill();
118. }
119. #endregion
120. MessageBox.Show( "导出成功!" );
121. }
122. }
123. }
DataGridView 数据导出到Excel
六、DataTable导出到excel(2) 1. StringWriter stringWriter = new StringWriter();
2. HtmlTextWriter htmlWriter = new HtmlTextWriter( stringWriter );
3. DataGrid excel = new DataGrid();
4. System.Web.UI.WebControls.TableItemStyle AlternatingStyle = new
TableItemStyle();
5. System.Web.UI.WebControls.TableItemStyle headerStyle = new
TableItemStyle();
6. System.Web.UI.WebControls.TableItemStyle itemStyle = new
TableItemStyle();
7. AlternatingStyle.BackColor = System.Drawing.Color.LightGray;
8. headerStyle.BackColor =System.Drawing.Color.LightGray;
9. headerStyle.Font.Bold = true;
10. headerStyle.HorizontalAlign =
System.Web.UI.WebControls.HorizontalAlign.Center;
11. itemStyle.HorizontalAlign =
System.Web.UI.WebControls.HorizontalAlign.Center;;
12.
13. excel.AlternatingItemStyle.MergeWith(AlternatingStyle);
14. excel.HeaderStyle.MergeWith(headerStyle);
15. excel.ItemStyle.MergeWith(itemStyle);
16. excel.GridLines = GridLines.Both;
17. excel.HeaderStyle.Font.Bold = true;
18. excel.DataSource = dt.DefaultView;//输出DataTable的内容
19. excel.DataBind();
20. excel.RenderControl(htmlWriter);
21.
22. string filestr = "d://data//"+filePath; //filePath是文件的路径
23. int pos = stIndexOf( "//");
24. string file = filestr.Substring(0,pos);
25. if( !Directory.Exists( file ) )
26. {
27. Directory.CreateDirectory(file);
DataGridView 数据导出到Excel
29. System.IO.StreamWriter sw = new StreamWriter(filestr);
30. sw.Write(stringWriter.ToString());
31. sw.Close();
七、通过SQL直接导出到Excel数据库
1. exec master..xp_cmdshell @# bcp "SELECT au_fname, au_lname FROM
pubs..authors ORDER BY au_lname" queryout c:/test.xls -c -S"soa" -U"sa" -P"sa" @# 注意:参数的大小写,另外这种方法写入数据的时候没有标题。
关于通过SQL读取EXCEL的方法请参见:
/wonsoft/archive/2008/11/16/3312320.aspx
八、用OleDB 把 DataSet 数据导出到 Excel文件里 1. //dt为数据源(数据表)
2. //ExcelFileName 为要导出的Excle文件
3. //ModelFile为模板文件,该文件与数据源中的表一致。否则数据会导出失败。
4. //ModelFile文件里,需要有一张 与 dt.TableName 一致的表,而且字段也要一
致。
5. //注明:如果不用ModelFile的话,可以用一个空白Excel文件,不过,要去掉
下面创建表的注释,让OleDb自己创建一个空白表。
6. public static string TableToExcelFile(DataTable dt,string ExcelFileName,string
ModelFile)
7. {
8. File.Copy(ModelFile,ExcelFileName); //复制一个空文件,提供写入数据用 9.
10. if(File.Exists(ExcelFileName)==false)
11. {
12. return "系统创建临时文件失败,请与系统管理员联系!";
13. }
14.
15. if(dt == null)
16. {
DataGridView 数据导出到Excel
17. return "DataTable不能为空";
18. }
19.
20. int rows = dt.Rows.Count;
21.
22. int cols = dt.Columns.Count;
23. StringBuilder sb;
24. string connString;
25.
26. if(rows == 0)
27. {
28. return "没有数据";
29. }
30.
31. sb = new StringBuilder();
32. connString="Provider=Microsoft.Jet.OLEDB.4.0;Data
Source="+ExcelFileName+";Extended Properties=Excel 8.0;";
33.
34. //生成创建表的脚本
35. //----sb.Append("DROP TABLE "+dt.TableName);
36.
37. /*
38. sb.Append("CREATE TABLE ");
39. sb.Append(dt.TableName + " ( ");
40. for(int i=0;i<cols;i++)
41. {
42. if(i < cols - 1)
43. sb.Append(string.Format("{0} varchar,",dt.Columns[i].ColumnName));
44. else
45. sb.Append(string.Format("{0} varchar)",dt.Columns[i].ColumnName));
46. }
47. */
48.
49. //return sb.ToString();
50.
DataGridView 数据导出到Excel
51. OleDbConnection objConn = new OleDbConnection(connString);
52. OleDbCommand objCmd = new OleDbCommand();
53. objCmd.Connection = objConn;
54. //mandText=sb.ToString();
55.
56. try
57. {
58. objConn.Open();
59. //objCmd.ExecuteNonQuery();
60. }
61. catch(Exception e)
62. {
63. return "在Excel中创建表失败,错误信息:" + e.Message;
64. }
65.
66. sb.Remove(0,sb.Length);
67.
68. sb.Append("INSERT INTO ");
69. sb.Append(dt.TableName + " ( ");
70.
71. for(int i=0;i<cols;i++)
72. {
73. if(i < cols - 1)
74. sb.Append(dt.Columns[i].ColumnName + ",");
75. else
76. sb.Append(dt.Columns[i].ColumnName + ") values (");
77. }
78.
79. for(int i=0;i<cols;i++)
80. {
81. if(i < cols - 1)
82. sb.Append("@" + dt.Columns[i].ColumnName + ",");
83. else
84. sb.Append("@" + dt.Columns[i].ColumnName + ")");
85. }
DataGridView 数据导出到Excel
86.
87. //建立插入动作的Command
88. mandText = sb.ToString();
89. OleDbParameterCollection param = objCmd.Parameters;
90.
91. for(int i=0;i<cols;i++)
92. {
93. param.Add(new OleDbParameter("@" + dt.Columns[i].ColumnName,
OleDbType.VarChar));
94. }
95.
96. //遍历DataTable将数据插入新建的Excel文件中
97. foreach (DataRow row in dt.Rows)
98. {
99. for (int i=0; i<param.Count; i++)
100. {
101. param[i].Value = row[i];
102. }
103.
104. objCmd.ExecuteNonQuery();
105. }
106.
107. return "数据已成功导入Excel";
108. }
109. // Trackback: /TrackBack.aspx?PostId=754176
九、利用OLEDB,以excel为数据库,把dataset中的数据导入到excel文件中
1. public static void exportToExcelByDataset(string filePath, DataSet
ds,XmlNode node)
2. {
3. string sqlstr;
4.
5. if(fi.Exists)
6. {
7. fi.Delete();
DataGridView 数据导出到Excel
8. //throw new Exception("文件删除失败");
9. }
10. else
11. {
12. fi.Create();
13. }
14.
15. string mailto:sqlcon=@%22Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
+ filePath + ";Extended ProPerties=Excel 8.0;";
16. OleDbConnection olecon = new OleDbConnection(sqlcon);
17. OleDbCommand olecmd = new OleDbCommand();
18. olecmd.Connection = olecon;
19. mandType = CommandType.Text;
20.
21. try
22. {
23. olecon.Open();
24.
25. XmlNode nodec=node.SelectSingleNode("./Method/ShowField");
26. int ii = 0;
27. sqlstr = "CREATE TABLE sheet1(";
28. foreach(XmlNode xnode in nodec.ChildNodes )
29. {
30. if(ii == nodec.ChildNodes.Count - 1)
31. {
32. if(xnode.Attributes["type"].Value.ToLower() ==
"int"||xnode.Attributes["type"].Value.ToLower() == "decimal")
33. {
34. sqlstr=sqlstr + xnode.Attributes["displayname"].Value + " number)";
35. }
36. else
37. {
38. sqlstr=sqlstr + xnode.Attributes["displayname"].Value + " text)";
39. }
40. // sqlstr=sqlstr + xnode.Attributes["displayname"].Value + " text)";
DataGridView 数据导出到Excel
42. else
43. {
44. if(xnode.Attributes["type"].Value.ToLower() ==
"int"||xnode.Attributes["type"].Value.ToLower() == "decimal")
45. {
46. sqlstr=sqlstr + xnode.Attributes["displayname"].Value + " number,";
47. }
48. else
49. {
50. sqlstr=sqlstr + xnode.Attributes["displayname"].Value + " text,";
51. }
52. }
53. // sqlstr =sqlstr + xnode.Attributes["displayname"].Value + " text";
54. ii++;
55. }
56. mandText = sqlstr;
57. olecmd.ExecuteNonQuery();
58. for(int i=0;i<ds.Tables[0].Rows.Count;i++)
59. {
60. sqlstr = "INSERT INTO sheet1 VALUES(";
61. int jj=0;
62. foreach(XmlNode inode in nodec.ChildNodes )
63. {
64. if(jj == nodec.ChildNodes.Count-1)
65. {
66. if(inode.Attributes["type"].Value.ToLower() ==
"int"||inode.Attributes["type"].Value.ToLower() == "decimal")
67. {
68. sqlstr = sqlstr + isnull(ds.Tables[0].Rows[i].ItemArray[jj].ToString()) + ")" ;
69. }
70. else
71. {
72. sqlstr = sqlstr + "'" +
isnull(ds.Tables[0].Rows[i].ItemArray[jj].ToString().Replace("'","''")) + "')" ;
DataGridView 数据导出到Excel
74. }
75. else
76. {
77. if(inode.Attributes["type"].Value.ToLower() ==
"int"||inode.Attributes["type"].Value.ToLower() == "decimal")
78. {
79. sqlstr = sqlstr + isnull(ds.Tables[0].Rows[i].ItemArray[jj].ToString()) + "," ;
80. }
81. else
82. {
83. sqlstr = sqlstr + "'" +
isnull(ds.Tables[0].Rows[i].ItemArray[jj].ToString().Replace("'","''")) + "'," ;
84. }
85. }
86. jj++;
87. }
88. mandText = sqlstr;
89. olecmd.ExecuteNonQuery();
90. }
91. MessageBox.Show(@"Excel文件:" + filePath + " 导出成功!");
92. }
93. catch(Exception ex)
94. {
95. MessageBox.Show(ex.Message);
96. }
97. finally
98. {
99. olecmd.Dispose();
100. olecon.Close();
101. olecon.Dispose();
102. }
103. }
104.
105. // 判断对象为空
DataGridView 数据导出到Excel
106. private static string isnull(string obj)
107. {
108. if(obj.Length >0)
109. {
110. return obj;
111. }
112. else
113. {
114. return "null";
115. }
116. }
鸣谢:感谢各位作者的无私奉献!世界有你们真精彩。
正在阅读:
C中数据导出到Excel表格06-05
Intouch使用总结11-03
隧道爆破安全专项施工方案04-27
美好的校园作文450字06-27
榕树下的阳光作文400字06-27
好一朵美丽的菊花作文300字06-22
妈妈我想对你说!作文1000字03-10
我的中国梦征文800字02-08
一次有趣的课作文500字07-07
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 导出
- 表格
- 数据
- Excel
- 主要自然灾害的形成与分布导学案
- 每日一练(2013年8月28)
- WEB网页设计-东北大学2-第二章 网站内容设计与创意设计
- 成都市2010年中考化学试题答案(横向双栏编辑+答案)
- 电大本科小学教育《人类与社会》试题及答案3
- 第二讲 类和对象(2)
- 2015年山东滨州中考物理试卷及答案
- 春季健脾是关键5款养生粥补足脾气
- “一评三管好”国旗下讲话稿
- 建筑物照明通电试运行
- 2017年河南大学计算机与信息工程学院840专业基础课(数据结构、操作系统)之计算机操作系统考研冲刺密押题
- 清洁生产标准 啤酒制造业_REDUCED
- 读《居法华人评说中西方制度优越》有感
- 理务关卫生院全国爱牙日宣传活动总结
- 液体火箭发动机反力式涡轮动叶进口攻角的研究
- 林业站森林防火应急预案
- 全球新能源企业500强
- 200903270402评审准则宣贯(新)
- 听骨干教师展示课—六年级上册数学圆的面积听课记录
- 诗词鉴赏 写景抒情诗