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. }

鸣谢:感谢各位作者的无私奉献!世界有你们真精彩。

本文来源:https://www.bwwdw.com/article/bbq1.html

Top