VS2010的导入导出EXCEL

合集下载

vs2010将dategridview导出成excel或word的方法

vs2010将dategridview导出成excel或word的方法

using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.IO;using System.Data.SqlClient;namespace supermarket{public partial class Form1 : Form{public Form1(){InitializeComponent();}private void Form1_Load(object sender, EventArgs e){string sql = "select * from tb_Stock";DataSet ds = BaseClass.SqlHelper.ExecutDataSet(sql);dataGridView1.DataSource = ds.Tables[0];}private void button1_Click(object sender, EventArgs e){string path = Directory.GetCurrentDirectory() + "\\";BaseClass.COut method = new BaseClass.COut();method.ExportExcel(this.dataGridView1, true);MessageBox.Show("导出成功");Microsoft.Office.Interop.Excel.Application excel =newMicrosoft.Office.Interop.Excel.Application(); //引用Excel对象Microsoft.Office.Interop.Excel.Workbook book = excel.Application.Workbooks.Add(path + DateTime.Now.ToString("yyyyMMddHHmm") + ".xls");//引用Excel工作簿excel.Visible = true; //使Excel可视}private void button2_Click(object sender, EventArgs e){string path = Directory.GetCurrentDirectory() + "\\";BaseClass.COut method = new BaseClass.COut();method.ExportDataGridview(this.dataGridView1, true);MessageBox.Show("导出成功");}}}调用的类using System;using System.Collections.Generic;using System.Linq;using System.Text;using Microsoft.Office.Interop.Excel;using System.Data.SqlClient;using System.Windows.Forms;using System.IO;namespace supermarket.BaseClass{class COut{///<summary>/// excel导出///</summary>///<param name="dgv"></param>///<param name="isShowExcle"></param>///<returns></returns>public bool ExportExcel(DataGridView dgv, bool isShowExcle){//文件保存路径为当前文件夹的debug里string path = Directory.GetCurrentDirectory() + "\\";if (dgv.Rows.Count == 0)return false;Microsoft.Office.Interop.Excel._Application xlApp = newMicrosoft.Office.Interop.Excel.Application();if (xlApp == null){return false; //result = 2;}Microsoft.Office.Interop.Excel.Workbook xlbook = xlApp.Workbooks.Add(true);for (int i = 0; i < dgv.ColumnCount; i++){xlApp.Cells[1, i + 1] = dgv.Columns[i].HeaderText;}for (int i = 0; i < dgv.RowCount - 1; i++){for (int j = 0; j < dgv.ColumnCount; j++){if (dgv[j, i].ValueType == typeof(string)){xlApp.Cells[i + 2, j + 1] = "" + dgv[j, i].Value.ToString();}else{xlApp.Cells[i + 2, j + 1] = dgv[j, i].Value.ToString();}}}xlbook.SaveCopyAs(path+ DateTime.Now.ToString("yyyyMMddHHmm") + ".xls");return true;}///<summary>/// word导出///</summary>///<param name="dgv"></param>///<param name="isshowWord"></param>///<returns></returns>public bool ExportDataGridview(DataGridView dgv, bool isshowWord){string path = Directory.GetCurrentDirectory() + "\\";Microsoft.Office.Interop.Word.Document mydoc = newMicrosoft.Office.Interop.Word.Document();//实例化word文档对象Microsoft.Office.Interop.Word.Table mytable;//声明word表格Microsoft.Office.Interop.Word.Selection mysel;//声明word选object myobj;if (dgv.Rows.Count == 0)return false;//生成word对象Microsoft.Office.Interop.Word.Application word = newMicrosoft.Office.Interop.Word.Application();myobj = System.Reflection.Missing.Value;mydoc = word.Documents.Add(ref myobj, ref myobj, ref myobj, ref myobj);word.Visible = true;mydoc.Select();mysel = word.Selection;//将word生成word表格文件mytable = mydoc.Tables.Add(mysel.Range, dgv.RowCount, dgv.ColumnCount, ref myobj, ref myobj);//设置列宽mytable.Columns.SetWidth(40, Microsoft.Office.Interop.Word.WdRulerStyle.wdAdjustNone);//输出标题数据for (int i = 0; i < dgv.ColumnCount; i++){mytable.Cell(1, i + 1).Range.InsertAfter(dgv.Columns[i].HeaderText);}//输出控件中的记录try{for (int i = 0; i < dgv.RowCount; i++){for (int j = 0; j < dgv.ColumnCount; j++){mytable.Cell(i + 2, j + 1).Range.InsertAfter(dgv[j, i].Value.ToString());}}}catch (Exception){ }mydoc.SaveAs(path + DateTime.Now.ToString("yyyyMMddHHmm") + ".doc");return true;}}}SqlHelper类using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Data;using System.Data.SqlClient;namespace supermarket.BaseClass{class SqlHelper{private static string CONN_STR = @"DataSource=.\SQLEXPRESS;AttachDBFilename=|DataDirectory|\db_supermarket.mdf;Integrated Security=SSPI;User Instance=True";//这里是打开vs2010自带的数据库的///<summary>/// insert delete update///</summary>///<param name="sql"></param>///<returns></returns>public static int ExecutNonQuery(string sql){SqlConnection conn = new SqlConnection(CONN_STR);conn.Open();SqlCommand comm = new SqlCommand(sql, conn);int ret = comm.ExecuteNonQuery();conn.Close();return ret;}/// select 取第一行第一列///<returns></returns>public static object ExecutScalar(string selectsql){SqlConnection conn = new SqlConnection(CONN_STR);conn.Open();SqlCommand comm = new SqlCommand(selectsql,conn);object obj=comm.ExecuteScalar();conn.Close();return obj;}/// select 取所有行所有列public static DataSet ExecutDataSet(string selectsql){SqlConnection conn = new SqlConnection(CONN_STR);conn.Open();DataSet ds = new DataSet();//内存数据库,用来保存从数据库服务器上SqlDataAdapter da = new SqlDataAdapter(selectsql, conn);da.Fill(ds);conn.Close();return ds;}}}。

VFP数据导出到EXCEL技术

VFP数据导出到EXCEL技术

VFP数据导出到EXCEL技术VFP数据导出到EXCEL技术我们都知道在EXCEL 中有很多很多的计算公式、灵活多变的计算方式、方便快捷的图表处理、和功能强大的VBA 语言,可以说EXCEL 可能是最好用的表格处理软件。

我敢说:微软的产品中大概就EXCEL 最好!但是,怎样用Foxpro 快速产生统计表,并将数据送到Excel 表格中,从而代替Foxpro 的报表工具呢?我们大家都知道,在Visual Foxpro 3.0及以后版本中提供了一个调用Ole Automation 的函数CREATEOBJECT,用该函数可以让Visual Foxpro 很方便的和其它可以提供Ole Automation 服务的程序进行通讯。

而Excel 更是一个标准的Ole Automation 服务器程序,我们可以在前端将数据传送到后端的Excel 服务程序,用后端服务程序进行表格处理,从而弥补Visual Foxpro的不足。

由于历史原因,我们作报表都习惯用Total、Count、Sum 或者直接在报表中工具中计算,速度最快的大概也就是Total 了,但不知道还有多少人还在坚持使用Total 命令进行计算,有没有更好的计算方法呢?当然有啦!我在实际使用中积累有一定的经验但愿能给各位起到小小的启发。

假设有一表:Table1 是一个人员档案,里面的表结构如下:-----字段名--类型及长度---------编号C,2部门C,10姓名C,10性别C,2出生日期 D职务C,10文化程度C,10内容大概如下TABLE1.DBF---------------------------------编号部门姓名性别出生日期职务文化程度---------------------------------1 工程部张三男1971-01-11 工程师大学本科 2 销售部李四男1967-02-23 经理大学本科 3 工程部王武1954-03-14 技术员大学专科4 总经理室赵洁雅女1975-04-05 秘书硕士研究生5 销售部..1977-05-09 销售经理高中 6 工程部大文1969-03-30 总工程师大学专科7 销售部..1961-10-10 销售经理大学专科8 总经理室庄稼1961-10-10 总经理大学专科当然实际的数据应该比这里多很多,要不还用统计干吗,我不过是举例说明而已。

VFP数据导出到EXCEL技术.

VFP数据导出到EXCEL技术.

VFP数据导出到EXCEL技术我们都知道在 EXCEL 中有很多很多的计算公式、灵活多变的计算方式、方便快捷的图表处理、和功能强大的VBA 语言,可以说 EXCEL 可能是最好用的表格处理软件。

我敢说:微软的产品中大概就 EXCEL 最好!但是,怎样用 Foxpro 快速产生统计表,并将数据送到 Excel表格中,从而代替 Foxpro 的报表工具呢?我们大家都知道,在 Visual Foxpro 3.0及以后版本中提供了一个调用Ole Automation 的函数 CREATEOBJECT,用该函数可以让 Visual Foxpro 很方便的和其它可以提供 Ole Automation 服务的程序进行通讯。

而 Excel 更是一个标准的 Ole Automation 服务器程序,我们可以在前端将数据传送到后端的 Excel 服务程序,用后端服务程序进行表格处理,从而弥补 Visual Foxpro的不足。

由于历史原因,我们作报表都习惯用 Total、Count、Sum 或者直接在报表中工具中计算,速度最快的大概也就是 Total 了,但不知道还有多少人还在坚持使用 Total 命令进行计算,有没有更好的计算方法呢?当然有啦!我在实际使用中积累有一定的经验但愿能给各位起到小小的启发。

假设有一表:Table1 是一个人员档案,里面的表结构如下:-----字段名--类型及长度---------编号C,2部门C,10姓名C,10性别C,2出生日期 D职务C,10文化程度C,10内容大概如下TABLE1.DBF---------------------------------编号部门姓名性别出生日期职务文化程度---------------------------------1 工程部张三男1971-01-11 工程师大学本科2 销售部李四男1967-02-23 经理大学本科3 工程部王武1954-03-14 技术员大学专科4 总经理室赵洁雅女1975-04-05 秘书硕士研究生5 销售部..1977-05-09 销售经理高中6 工程部大文1969-03-30 总工程师大学专科7 销售部..1961-10-10 销售经理大学专科8 总经理室庄稼1961-10-10 总经理大学专科当然实际的数据应该比这里多很多,要不还用统计干吗,我不过是举例说明而已。

VB导出Excel(导入指定格式的Excel文档中)

VB导出Excel(导入指定格式的Excel文档中)

VB导出Excel(导入指定格式的Excel文档中)VB 是常用的应用软件开发工具之一,由于VB的报表功能有限,而且一旦报表的格式发生变化,就得相应修改程序,给应用软件的维护工作带来极大的不便。

因此有很多程序员现在已经充分利用Excel 的强大报表功能来实现报表功能。

但由于 VB 与 Excel 分别属于不同的应用系统,如何把它们有机地结合在一起,是一个值得我们研究的课题。

1、在工程中添加一些报表的引用:如下:Interop.Excel(选择 Microsoft Excel 9.0 Object Library ---Excel 2000)然后选择确定,表示在工程中已经添加了类库。

2、在通用对象的声明过程中定义 Excel 对象dim xlApp As Excel.Application ‘Application 对象是 Excel 对象模型中最高层级的对象,代表Excel应用程序本身,也包含组成工作薄的许多部分,包括工作薄、工作表、单元格集合以及它们包含的数据。

dim xlBook As Excel.Workbook ’设置 xlBook 为一个工作薄dim xlSheet As Excel.Worksheet ‘设置 xlSheet 为一个工作薄的工作表3、在程序中操作 Excel 表常用命令:xlApp.AskToUpdateLinks=False‘来取消讨厌的对话框xlApp.Application.AskToUpdateLinks=False’屏蔽是否更新链接的对话框x lApp.AlertBeforeOverwriting=False’屏蔽弹出保存和覆盖的询问提示框xlApp.Application.DisplayAlerts=False‘屏蔽删除工作表时询问是否删除的对话框xlApp.Visible=False'设置 Excel 对象不可见(或可见)xlBook=xlApp.Workbooks.Open(fileName,2,False)’打开已经存在的 Excel 工作薄文件xlBook.Save()'保存xlBook.Close(True)'关闭工作薄x lApp.Quit()’结束 Excel 对象xlApp=Nothing ‘释放 xlApp 对象xlBook=Nothing ’释放 xlBook 对象xlSheet=Nothing ‘释放 xlSheet 对象4、在运用以上 VB 命令操作 Excel 表时,除非设置 Excel 对象不可见,否则 VB 程序可继续执行其他操作,也能够关闭 Excel,同时也可对 Excel 进行操作。

VC导出导入数据到Excel中

VC导出导入数据到Excel中

VC导出导入数据到Excel中(实例)//在Excel 2000环境下首先利用Visual C++ 6.0,建立一个MFC基于对话框的工程项目,共享DLL,Wi n32平台。

工程名称ExcelTest。

在主对话框中加入一个按钮,ID IDC_EXCELTESTCaption Test Excel双击该按钮,增加成员函数void CExcelTestDlg::OnExceltest()。

在BOOL CExcelTestApp::InitInstance()中,dlg.DoModal();之前增加代码:if (CoInitialize(NULL)!=0){AfxMessageBox("初始化COM支持库失败!");exit(1);}在return FALSE; 语句前,加入:CoUninitialize();选择Menu->View->ClassWizade,打开ClassWizade窗口,选择Add Class->Fro m a type library,选择D:\Program Files\Microsoft Office\office\Excel9.OLB(D: \Program Files\Microsoft Office\是本机上Microsoft Office 2000的安装目录,可根据个人机器上的实际安装目录修改)。

选择_Application、Workbooks、_Workbook、W orksheets、_Worksheet、Range,加入新类,分别为_Application、Workbooks、_ Workbook、Worksheets、_Worksheet、Range,头文件Excel9.h,源文件Excel9. cpp。

在ExcelTestDlg.cpp文件的头部,#include "ExcelTestDlg.h"语句之下,增加:#include "comdef.h"#include "Excel9.h"在void CExcelTestDlg::OnExceltest() 函数中增加如下代码:void CExcelTestDlg::OnExceltest(){_Application ExcelApp;Workbooks wbsMyBooks;_Workbook wbMyBook;Worksheets wssMysheets;_Worksheet wsMysheet;Range rgMyRge;//创建Excel 2000服务器(启动Excel)if (!ExcelApp.CreateDispatch("Excel.Application",NULL)){AfxMessageBox("创建Excel服务失败!");exit(1);}//利用模板文件建立新文档wbsMyBooks.AttachDispatch(ExcelApp.GetWorkbooks(),true);wbMyBook.AttachDispatch(wbsMyBooks.Add(_variant_t("g:\\exceltest\\MyTe mplate.xlt")));//得到WorksheetswssMysheets.AttachDispatch(wbMyBook.GetWorksheets(),true);//得到sheet1wsMysheet.AttachDispatch(wssMysheets.GetItem(_variant_t("sheet1")),true);//得到全部Cells,此时,rgMyRge是cells的集合rgMyRge.AttachDispatch(wsMysheet.GetCells(),true);//设置1行1列的单元的值rgMyRge.SetItem(_variant_t((long)1),_variant_t((long)1),_variant_t("This Is A Excel Test Program!"));//得到所有的列rgMyRge.AttachDispatch(wsMysheet.GetColumns(),true);//得到第一列rgMyRge.AttachDispatch(rgMyRge.GetItem(_variant_t((long)1),vtMissing).pdi spVal,true);//设置列宽rgMyRge.SetColumnWidth(_variant_t((long)200));//调用模板中预先存放的宏ExcelApp.Run(_variant_t("CopyRow"),_variant_t((long)10),vtMissing,vtMissin g,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing, vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing, vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing, vtMissing,vtMissing,vtMissing,vtMissing,vtMissing,vtMissing);//打印预览wbMyBook.SetSaved(true);ExcelApp.SetVisible(true);wbMyBook.PrintPreview(_variant_t(false));//释放对象rgMyRge.ReleaseDispatch();wsMysheet.ReleaseDispatch();wssMysheets.ReleaseDispatch();wbMyBook.ReleaseDispatch();wbsMyBooks.ReleaseDispatch();ExcelApp.ReleaseDispatch();}。

如何在VB中实现输出到Excel

如何在VB中实现输出到Excel

如何在VB中实现输出到Excelvisual basic 2009-12-04 12:38:22 阅读61 评论0字号:大中小订阅首先要在工程中添加引用“Microsoft Excel 9.0 Object Library”我们使用三个对象Excel.ApplicationExcel.WorkBookExcel.WorkSheet然后我们的目标是:能新建一个Excel文件。

讲某些行列进行合并,设置列宽,填入一个数据,将这个Excel 保存。

Public Sub'定义对象Dim xlApp As Excel.ApplicationDim xlBook As Excel.WorkbookDim xlSheet1 As Excel.WorksheetDim xlSheet2 As Excel.WorksheetSet xlApp = CreateObject("Excel.Application")Set xlBook = xlApp.Workbooks.AddSet xlSheet1 = xlBook.Worksheets("sheet1")Set xlSheet2 = xlBook.Worksheets("sheet2")'参数是下标!!!一定是按照Sheet1,Sheet2,Sheet3这样的顺序来的。

= "值班表" '修改工作簿的名称,就是将显示的名称换掉 = "呼拉拉" '同上xlSheet1.PageSetup.Orientation = xlLandscape '打印设置-- 设置为横向xlSheet1.PageSetup.TopMargin = 20 '一下四部分为设置Excel的显示格式xlSheet1.PageSetup.BottomMargin = 20xlSheet1.PageSetup.LeftMargin = 8xlSheet1.PageSetup.RightMargin = 8xlApp.Visible = True 'Excel文件是不是显示With xlSheet1.Columns.item(1).ColumnWidth() = 2 '列宽大小.Range(.Cells(1, 1), .Cells(3, 1)).Merge '合并.Cells(1, 1).Value = "123" '填入数据End WithxlApp.Visible = False '这样写,Excel的操作就不显示了。

Visual Basic .Net导入数据库数据到Excel表格

Visual Basic .Net导入数据库数据到Excel表格

Visual Basic .Net导入数据库数据到Excel表格通过此示例可以方便的把Sql Server数据库中数据表导入到Excel表格中,同样对于其他类型的数据库,如果也需要导入数据到Excel表格,只需要修改此示例中数据连接部分的代码就可以了。

以下是在Visual Basic .Net中导入Sql Server数据库到Excel表格的具体的实现步骤:1. 启动Visual Studio .Net。

2. 选择菜单【文件】|【新建】|【项目】后,弹出【新建项目】对话框。

3. 将【项目类型】设置为【Visual Basic项目】。

4. 将【模板】设置为【Windows应用程序】。

5. 在【名称】文本框中输入【Visual Basic .Net导入数据库数据到Excel 表格】。

6. 在【位置】的文本框中输入【E:\项目】,然后单击【确定】按钮,这样在"E:\项目"目录中就产生了名称为"Visual Basic .Net中操作Word文档"的文件夹,并在里面创建了名称为"Visual Basic .Net导入数据库数据到Excel表格"的项目文件。

7. 把Visual Studio .Net的当前窗口切换到【Form1.vb(设计)】窗口,并从【工具箱】中的【Windows窗体组件】选项卡中往Form1窗体中拖入下列组件,并执行相应的操作:五个Label组件。

五个TextBox组件。

一个Button组件,用以实现导入Sql Server数据库到Excel表格,并在这个Button组件拖入Form1的设计窗体后,双击它们,则Visual Stuido .Net会在Form1.vb文件分别产生这组件的Click事件对应的处理代码。

8. 选中【解决方案管理器】,右击【引用】,在弹出的菜单中选中【添加引用】后,按照图01所示,加入要引用的COM组件"Microsoft Excel 9.0 Object Library":图01:【Visual Basic .Net导入数据库数据到Excel表格】项目【添加引用】对话框9. 把Visual Studio .Net的当前窗口切换到Form1.vb的代码编辑窗口,并在Form1.vb文件首部添加下列代码,下列代码是导入下面使用的数据类所在的命名空间:10. 用下列代码替换Form1.vb中的InitializeComponent过程对应的代码,下列代码作用是初始化窗体中加入的组件:至此【Visual Basic .Net导入数据库数据到Excel表格】项目的界面设计和功能实现的准备工作就完成了,具体如图02所示:图02:【Visual Basic .Net导入数据库数据到Excel表格】项目的设计界面11. 用下列代码替换Form1.vb中的Button1的Click事件对应的处理代码,下列代码功能是根据使用者输入的数据库信息,建立数据连接,打开数据表,并导入到Excel表格中,如果出错则弹出出错信息:至此在上述步骤都正确完成后,【Visual Basic .Net导入数据库数据到Excel表格】项目的全部工作就基本完成了。

经典三种C#导入导出到EXCEL的方法(C#开发人员必备)

经典三种C#导入导出到EXCEL的方法(C#开发人员必备)

C#导入导出EXCEL------------阿秋笔记add by 2011-3-24注:本文中的所有案例全部测试通过,请放心使用!三大功能:1,导入:把EXCEL文件导入到对应的数据库表中2,导出:(1)把HTML页面直接导出到EXCEL;(2)把DataTable对象导出到EXCEL 环境:VS2005 + SQL SERVER 2005 Language:C#1,导入步骤:上传EXCEL文件,保存到服务器某一个文件夹下,然后解析的DataTable中,在分解插入到数据库表中实现代码:(1)前台,Default.aspx 放入一个上传控件FileUpload + 按钮控件Button代码:<asp:FileUpload ID="FU"runat="server"Width="595px"/><asp:Button ID="btnUpload"runat="server"Text="上传"OnClick="btnUpload_Click"/> (2)后台Default.asp.cs代码:-----按钮单击事件btnUpload_Clickprotected void btnUpload_Click(object sender, EventArgs e){if (this.FU.PostedFile == null || this.FU.PostedFile.FileName == "") //判断是否选择上载文件{this.RegisterStartupScript("1","alert('请选择上传的数据文件!');");return;}string m_ExtName =Path.GetExtension(TrimHtml(Path.GetFileName(this.FU.PostedFile.FileName))).ToLower();if ((m_ExtName.Replace(".", "") != "xls")){this.RegisterStartupScript("2","alert('请上传Execl类型文件!');");return;}string newname = DateTime.Now.ToString("yyyy_MM_dd_HH_mm_ss") + m_ExtName;FU.PostedFile.SaveAs(Server.MapPath("~/xx/"+newname));string fPath = Request.PhysicalApplicationPath + "xx/" + newname;fPath = fPath.Replace("\\", "/");DataTable dt = ExcelToDS(fPath, "LAWUSER");bool IsSuccessful = true;string _errorRow = "";foreach (DataRow row in dt.Rows){if (row["姓名"].ToString().Trim().Equals("")){continue;}string id = row["编号"].ToString();string name = row["姓名"].ToString();string tel = row["联系电话"].ToString();string sql = "insert into AA values('" + id + "','" + name + "','" + tel + "')";try{int i = SqlHelper1.ExecuteNonQuery(sql);if (i > 0){this.RegisterStartupScript("4", "susccessfully");}else{ this.RegisterStartupScript("4","插入错误"); }}catch (Exception ex){this.RegisterStartupScript("3","alert('"+ex.Message+"');");}}}-----函数ExcelToDS,这里的ExtandName是指EXCEL中对应的Sheet1修改后的名称private DataTable ExcelToDS(string Path, string ExtandName){string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+ Path + ";"+ "Extended Properties='Excel 8.0;'";OleDbConnection conn = new OleDbConnection(strConn);conn.Open();string strExcel = "";OleDbDataAdapter myCommand = null;DataSet ds = null;strExcel = "select * from [" + ExtandName + "$]";myCommand = new OleDbDataAdapter(strExcel, strConn);ds = new DataSet();myCommand.Fill(ds, "table1");return ds.Tables[0];}-----对字符串操作函数TrimHtmlprivate string TrimHtml(string str){return str.Replace("&", "").Replace("<", "").Replace("'", "").Replace("\"","").Replace("\\", "");}(3)数据库表格式:CREATE TABLE [dbo].[AA]([id] [int] NOT NULL,[name] [varchar](50)COLLATE Chinese_PRC_CI_AS NULL,[tel] [varchar](50)COLLATE Chinese_PRC_CI_AS NULL,CONSTRAINT [PK_AA] PRIMARY KEY CLUSTERED([id] ASC)WITH(PAD_INDEX =OFF, STATISTICS_NORECOMPUTE =OFF, IGNORE_DUP_KEY =OFF, ALLOW_ROW_LOCKS =ON, ALLOW_PAGE_LOCKS =ON)ON [PRIMARY])ON [PRIMARY]注意表列与DataTable中的数据一一对应即可2,导出,将HTML导出到EXCEL,注:我这里是后台实现导出,也有用JS脚本导出的。

快速导入导出数据的EXCEL技巧

快速导入导出数据的EXCEL技巧

快速导入导出数据的EXCEL技巧Excel是一款功能强大的电子表格软件,广泛应用于各个领域。

在工作和学习中,导入和导出数据是经常需要处理的任务之一。

本文将介绍一些快速导入导出数据的Excel技巧,帮助你高效完成相关工作。

1. 导入数据在Excel中导入数据可以让你轻松将外部数据引入到工作表中,以下是几种常见的导入数据的方法:a. 从文本文件导入:点击“数据”选项卡中的“从文本”按钮,选择要导入的文本文件,按照引导逐步进行设置,包括文件分隔符、数据格式等。

完成设置后,点击“导入”按钮即可将文本文件中的数据导入到Excel中。

b. 从数据库导入:如果你需要从数据库导入数据,可以使用Excel的“数据”选项卡中的“获取外部数据”功能。

选择适当的数据库驱动程序,并按照提示连接到数据库,然后选择要导入的数据表或查询结果。

最后,点击“导入”按钮完成导入过程。

c. 从Web导入:有时候你可能需要从Web页面上导入数据,Excel提供了“数据”选项卡中的“从Web”功能。

输入要导入的网页地址,点击“导航”按钮,选择需要导入的表格或数据,并点击“导入”按钮将数据导入到Excel中。

2. 导出数据导出数据是将Excel中的数据转移到其他文件格式或应用程序中,以下是几种常见的导出数据的方法:a. 导出为CSV文件:CSV文件是一种常用的文本文件格式,可以被多种应用程序识别。

在Excel中,你可以选择要导出的工作表,点击“文件”选项卡中的“另存为”按钮,选择“CSV(逗号分隔)”格式,然后按照提示设置文件名和保存位置,点击“保存”按钮即可将数据导出为CSV文件。

b. 导出为PDF文件:如果你需要将Excel中的工作表导出为PDF文件,可以点击“文件”选项卡中的“另存为”按钮,选择“PDF”格式,按照提示进行设置,包括文件名、页面范围等,然后点击“保存”按钮即可导出为PDF文件。

c. 导出为Word或PowerPoint文件:有时候你可能需要将Excel中的数据导出到Word或PowerPoint中进行进一步编辑和展示。

VSGridView导出Excel合并方法详细

VSGridView导出Excel合并方法详细

VSGridView导出Excel合并方法详细VSGridView中数据的显示:直接导出的显示为:(VsFlexGrid的SaveGrid方法导出Excel)用本文的方法导出后的效果与显示前一样:导出方法:Sub ExportToExcel()fileName = xform.ShowFileDialog(false,false,"考学情况统计.xls") Dim xlsAppDim xlsBookDim xlsSheetDim tempSet xlsApp =CreateObject("Excel.Application")xlsApp.Visible = falseSet xlsBook = xlsApp.Workbooks.AddSet xlsSheet = xlsBook.Worksheets(1)For i = 0 To gridKXTJ.Rows - 1For j = 0 To gridKXTJ.Cols - 1xlsSheet.Cells(i +1, j+1 ) = gridKXTJ.T extMatrix(i, j) NextxlsSheet.Range(xlsSheet.cells(i+1,1), xlsSheet.cells(i+1, j+1)).Select xlsApp.Selection.HorizontalAlignment = 3 NextFor i = 0 To 1xlsSheet.Cells(1, i +1 ) = ""xlsSheet.Cells(2, i +1 ) = ""xlsSheet.Cells(3, i +1 ) = ""NextFor i = 3 To 9xlsSheet.Cells(1, i ) = ""NextFor i = 5 To 8xlsSheet.Cells(2, i ) = ""NextxlsSheet.Cells(2,3)=""xlsSheet.Cells(3,3)=""xlsSheet.Cells(2,4)=""xlsSheet.Cells(3,4)=""xlsSheet.Cells(2,9)=""xlsSheet.Cells(3,9)=""xlsSheet.Range(xlsSheet.cells(1, 1), xlsSheet.cells(3, 1)).Select xlsApp.Selection.MergeCells = TruexlsApp.Selection.HorizontalAlignment = 3xlsSheet.Cells(1, 1) = "序号"xlsSheet.Range(xlsSheet.cells(1, 2), xlsSheet.cells(3, 2)).Select xlsApp.Selection.MergeCells = TruexlsApp.Selection.HorizontalAlignment = 3xlsSheet.Cells(1, 2) = "姓名"xlsSheet.Range(xlsSheet.cells(1, 3), xlsSheet.cells(1, 9)).Select xlsApp.Selection.MergeCells = True'xlsApp.Selection.HorizontalAlignment = 3xlsSheet.Cells(1, 3) = "考学"xlsSheet.Range(xlsSheet.cells(2, 3), xlsSheet.cells(3, 3)).Select xlsApp.Selection.MergeCells = TruexlsApp.Selection.HorizontalAlignment = 3xlsSheet.Cells(2, 3) = "学习得分"xlsSheet.Range(xlsSheet.cells(2, 4), xlsSheet.cells(3, 4)).Select xlsApp.Selection.MergeCells = TruexlsApp.Selection.HorizontalAlignment = 3xlsSheet.Cells(2, 4) = "考试得分"xlsSheet.Range(xlsSheet.cells(2,5), xlsSheet.cells(2, 8)).Select xlsApp.Selection.MergeCells = TruexlsApp.Selection.HorizontalAlignment = 3xlsSheet.Cells(2, 5) = "参加集中学习"xlsSheet.Range(xlsSheet.cells(2,9), xlsSheet.cells(3, 9)).Select xlsApp.Selection.MergeCells = TruexlsApp.Selection.HorizontalAlignment = 3xlsSheet.Cells(2, 9) = "扣分"xlsBook.Saveas(fileName)Set xlsSheet=NothingSet xlsBook = NothingSet xlsApp = NothingEnd Sub。

VB第12章 数据的导入和报表输出

VB第12章 数据的导入和报表输出
pro.Kill() Next GC.Collect()
12.1 Visual Studio与Excel电子表格
12.1.2 操作Excel工作表 1. 指定要操作的工作表 指定要操作的工作表通常可以通过以下3种方式来实现: '操作当前工作表 Dim ExcelSheet As Worksheet =ExcelApp.ActiveSheet '操作Excel工作簿中的第1个工作表 Dim ExcelSheet As Worksheet = ExcelBook.Worksheets(1) '操作工作簿中名为“abc”的工作表 Dim ExcelSheet As Worksheet = ExcelBook.Worksheets("abc")
12.1 Visual Studio与Excel电子表格
12.1.2 操作Excel工作表
5. 打印工作表
通过Worksheet对象的PrintPreview方法或PrintOut方法可实 现工作表打印预览或进行打印输出。
(1) PrintPreview方法
PrintPreview方法带有1个Boolean类型的参数,表示打印预览 时是否能对文档进行设置。参数值为False时,预览窗口中的“设 置”和“页边距”按钮不可用。需要注意的是,对工作表进行打印 预览前应将ApplicationClass对象的Visible属性设置为True,否 则将无法看到预览效果。
12.1 Visual Studio与Excel电子表格
12.1.2 操作Excel工作表 2. 向工作表中写入数据 例如,下列代码将字符串“abc”写到当前工作表的D3单元格中: …… '创建Excel工作表对象 '为工作表的第3行第4列单元格(D3)赋值 ExcelSheet.Cells(3, 4) = "abc" '不显示保存文件提示信息框 ExcelApp.DisplayAlerts = False ExcelBook.Save() '保存工作簿 ExcelApp.Quit()

Excel中数据导入和导出的方法与技巧

Excel中数据导入和导出的方法与技巧

Excel中数据导入和导出的方法与技巧Excel是一款功能强大的电子表格软件,广泛应用于各个领域。

在工作和学习中,我们经常需要将数据导入到Excel中进行分析和处理,或者将Excel中的数据导出到其他软件或平台上使用。

本文将介绍一些数据导入和导出的方法和技巧,帮助读者更高效地使用Excel。

一、数据导入1. 从文本文件导入数据Excel支持从文本文件中导入数据。

首先,打开Excel并选择“文件”菜单中的“打开”选项。

在弹出的对话框中,选择要导入的文本文件,并点击“打开”。

Excel会自动识别文件中的数据类型,并将其导入到工作表中。

2. 从数据库中导入数据如果数据存储在数据库中,可以使用Excel的“数据”选项卡中的“来自其他源”功能来导入数据。

选择“来自数据库”选项,并按照向导的指示连接到数据库并选择要导入的数据表。

Excel会自动将数据库中的数据导入到工作表中。

3. 从Web页面导入数据有时候我们需要从Web页面上抓取数据并导入到Excel中。

Excel提供了“数据”选项卡中的“来自Web”功能,可以通过指定Web页面的URL来导入数据。

在打开的对话框中输入URL,并点击“导入”按钮。

Excel会自动解析页面上的表格或其他数据,并将其导入到工作表中。

二、数据导出1. 导出为文本文件如果需要将Excel中的数据导出为文本文件,可以选择“文件”菜单中的“另存为”选项。

在弹出的对话框中选择保存的文件格式为“纯文本”,并指定保存的路径和文件名。

点击“保存”后,Excel会将数据导出为文本文件。

2. 导出为PDF文件有时候我们需要将Excel中的数据以PDF格式分享给他人。

选择“文件”菜单中的“另存为”选项,并选择保存的文件格式为“PDF”。

点击“保存”后,Excel会将数据导出为PDF文件,可以方便地在各种设备上查看和打印。

3. 导出为图像文件如果需要将Excel中的数据导出为图片,可以先选中要导出的数据范围,然后按下键盘上的“Ctrl”和“C”键,将数据复制到剪贴板中。

C++test(VS2010插件版)简明操作手册

C++test(VS2010插件版)简明操作手册

目录目录 (1)C++test(VS2010插件版)使用文档 (2)1编写说明 (2)2项目导入 (2)3 工程设置 (2)4静态测试 (3)4.1 静态测试配置 (3)4.2执行静态测试 (4)4.3 查看测试报告 (5)4.4 查看质量任务 (5)5.自动生成测试用例 (6)5.1. 自动生成测试用例配置 (6)5.2 执行自动生成测试用例 (8)5.3 查看测试报告 (8)5.4 查看自动生成的测试用例 (8)6.执行测试用例 (15)6.1. 执行测试用例配置 (15)6.2 执行测试用例 (17)6.3 查看测试报告 (17)6.4 查看生成的测试用例 (17)6.5 查看覆盖率 (18)7.桩函数 (19)7.1 桩函数概述 (19)7.2 自动生成桩函数 (19)7.3 用户自定义桩函数 (20)8.关于测试用例 (21)8.1预置条件为形参的测试用例 (22)8.2调用子函数获得输入 (24)8.3.成员变量获得输入,如下源代码: (26)8.4. 全局变量获得输入及桩函数的联合使用 (27)C++test(VS2010插件版)使用文档1 编写说明Parasoft C++test是经广泛证明的最佳时间集成解决方案,它能有效地提高开发团队的工作效率和软件质量。

本教程侧重点介绍单元测试的使用方法。

单元测试的定义是测试应用程序中最小的单元。

单元测试提供了一种更有效的发现错误的方法,它将应用程序中的最小单元分离开来,使得测试更接近错误,只要简单地对每个最小单元进行独立测试,就很容易的使全面准确的找到程序中的错误成为可能,单元测试能帮助客户更准确更全面的找到错误,显著提高软件质量。

2 项目导入1.如何导入一个已有项目➢选择“File”>”打开”>”项目解决方案”➢找到.sln文件,双击.sln文件或者直接双击.sln文件。

3 工程设置1. 导入项目完成后,右键点击项目名称>”属性”>”配置属性”>”常规”下的“配置类型“改为“动态库(.dll)”如图所示:然后修改路径,双击C/C++>“常规“>”附加包含目录”,将当前工程下源代码路径添加进去,如图所示:4 静态测试4.1 静态测试配置点击测试三角号右边的下拉菜单>”测试配置”如图:点击用户自定义>“新建””➢名称可根据不同的测试项目,及测试标准命名,这里为默认命名“静态测试”➢点击静态,只启动MISRA C 2004的所有规则,如下图所示➢其他选项暂不考虑,点击Apply>Close完成测试配置4.2执行静态测试➢可对整个项目进行静态测试,也可根据需要对某个.c文件单独进行静态测试,不同的测试要选中测试目标,如对某一个.c测试一定要选中这个.c文件(左键点击该.c文件即可)。

将数据从VisualBasic传输到Excel的方法

将数据从VisualBasic传输到Excel的方法

将数据从VisualBasic传输到Excel的方法INFO:将数据从 Visual Basic 传输到 Excel 的方法适用于概要本文介绍将数据从 Microsoft Visual Basic 应用程序传输到 Microsoft Excel 的多种方法。

本文还介绍了每种方法的优缺点,这样您可以选择最适合您的解决方案。

更多信息将数据传输到 Excel 工作簿最常用的方法是“自动化”功能。

“自动化”功能为您提供了指定数据在工作簿中所处位置的最大的灵活性,以及对工作簿进行格式设置和在运行时进行各种设置的功能。

利用“自动化”功能,您可以使用多种方法传输数据:逐单元格传输数据将数组中的数据传输到单元格区域使用 CopyFromRecordset 方法向单元格区域传输 ADO 记录集中的数据在 Excel 工作表上创建一个 QueryTable,它包含对 ODBC 或 OLEDB 数据源进行查询的结果。

将数据传输到剪贴板,然后将剪贴板内容粘贴到 Excel 工作表中。

您还可以使用一些其他方法将数据传输到 Excel,而不必使用“自动化”功能。

如果您正在运行服务器端应用程序,这是一种将批量数据处理从客户端移走的好方法。

在没有“自动化”功能的情况下,可以使用下列方法来传输数据:将数据传输到制表符分隔或逗号分隔的文本文件,然后 Excel 可以将该文本文件分析为工作表上的单元格使用 ADO 将数据传输到工作表使用动态数据交换 (DDE) 将数据传输到 Excel下面的部分提供了每种解决方案的详细信息。

使用“自动化”功能逐单元格传输数据利用“自动化”功能,您可以逐单元格地向工作表传输数据:Dim oExcel As ObjectDim oBook As ObjectDim oSheet As Object'Start a new workbook in ExcelSet oExcel = CreateObject("Excel.Application")Set oBook = oExcel.Workbooks.Add'Add data to cells of the first worksheet in the new workbookSet oSheet = oBook.Worksheets(1)oSheet.Range("A1").Value = "Last Name"oSheet.Range("B1").Value = "First Name"oSheet.Range("A1:B1").Font.Bold = TrueoSheet.Range("A2").Value = "Doe"oSheet.Range("B2").Value = "John"'Save the Workbook and Quit ExceloBook.SaveAs "C:\Book1.xls"oExcel.Quit如果数据量较少,逐单元格传输数据是一种完全可以接受的方法。

VS2010操作Excel2010,报错解决及读写excel

VS2010操作Excel2010,报错解决及读写excel

VS2010操作Excel2010,报错解决及读写excel版权所有,未经允许不可作为商业用途!!转载请注明出处!!谢谢合作!!2013-03-20操作系统:Windows 7旗舰版工具:VS2010语言:MFC C++第一步:初化COM接口。

在InitInstance中加入如下代码:12345if(!AfxOleInit()){AfxMessageBox(_T("Cannot initialize COM dll"));return FALSE;}第二步:向工程添加Excel的C++操作类。

具体步骤见下图:1.Ctrl+Shift+X 打开类向导。

2.添加需要的类文件。

如下图:4.将刚才导入的类头文件,加到模块std中。

#include "CApplication.h"#include "CWorkbooks.h"#include "CWorkbook.h"#include "CWorksheets.h"#include "CWorksheet.h"#include "CRanges.h"#include "CRange.h"//以上加入到 stdafx.h中5、将以上头文件的#import "C:\\Program Files\\Microsoft Office\\Office14\\EXCEL.EXE" no_namespace替换成以下:#pragma region Import the type libraries//#import "libid:2DF8D04C-5BFA-101B-BDE5-00AA0044DE52"#import "C:\\Program Files\\Common Files\\MicrosoftShared\\Office14\\MSO.DLL" \rename("RGB", "ExclRGB") rename("DocumentProperties", "ExclDocumentProperties") \rename("SearchPath", "ExclSearchPath")using namespace Office;//#import "libid:0002E157-0000-0000-C000-000000000046"#import "C:\\Program Files\\Common Files\\Microsoft Shared\\VBA\\VBA6\\VBE6EXT.OLB" \rename("Reference", "ignorethis")using namespace VBIDE;#pragma warning( disable : 4049 )//#import "libid:00020813-0000-0000-C000-000000000046"#import "C:\\Program Files\\Microsoft Office\\Office14\\EXCEL.EXE" \exclude("IFont", "IPicture") \rename("RGB", "ExclRGB") \rename("DocumentProperties", "ExclDocumentProperties") \ rename("SearchPath", "ExclSearchPath") \rename("CopyFile", "ExclCopyFile") \rename("DialogBox", "ExclDialogBox") \rename("ReplaceT ext", "ExclReplaceT ext")using namespace Excel;6、编译,出现双击error C2059,将VARIANT DialogBox()改成VARIANT _DialogBox()再次编译,通过!!以下为读excel操作CApplication ExcelApp;CWorkbooks books;CWorkbook book;CWorksheets sheets;CWorksheet sheet;CRange range;CRange excel_current_range_;LPDISPATCH lpDisp = NULL;CString name;CString FilePathname;CString Filescr = _T("F:\\BenderMenu.xlsx");CString strSheetName = _T("Menu");CString strItem1;COleVariant varItem;COleVariant File;int PointSum = 0;long i = 0, j = 0;CEdit* pEdit = NULL;int IDL = 0;int IDA = 0;//创建Excel 服务器(启动Excel)if(!ExcelApp.CreateDispatch(_T("Excel.Application"),NULL)){AfxMessageBox(_T("启动Excel服务器失败!"));return;}ExcelApp.put_Visible(FALSE);ExcelApp.put_UserControl(TRUE);books.AttachDispatch(ExcelApp.get_Workbooks());CFileDialog Fdlg(TRUE, _T("Worksheet Files (*.xlsx)|*.xlsx"), NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, _T("Worksheet Files (*.xlsx)|*.xlsx"), NULL);Fdlg.m_ofn.lpstrInitialDir = _T("F:\\");if(IDOK == Fdlg.DoModal()){//get path of the fileFilePathname = Fdlg.GetPathName();//File = FilePathname;}else{return;}//打开一个工作簿lpDisp = books.Open(FilePathname,vtMissing, vtMissing, vtMissing, vtMissing, vtMissing,vtMissing, vtMissing, vtMissing, vtMissing, vtMissing,vtMissing, vtMissing, vtMissing, vtMissing);if(lpDisp != NULL){book.AttachDispatch(lpDisp);}sheets.AttachDispatch(book.get_Sheets());lpDisp = sheets.get_Item(_variant_t(strSheetName));if(lpDisp != NULL){sheet.AttachDispatch(lpDisp);}//以上为关联sheet,book等,,以下为读操作range.AttachDispatch(sheet.get_Cells());//一定要,不知道为何range.AttachDispatch(range.get_Item(COleVariant((long)20), COleVariant((long)2)).pdispVal, TRUE);//关联(20,2)单元格varItem = range.get_Value2();strItem1.Format(_T("%.lf"), varItem.dblVal);//知道是double类型,直接使用,若不知道得做类型判断PointSum = _ttoi(strItem1);m_PIC.m_pointSum = PointSum;range.ReleaseDispatch();//以下为写excelrange.AttachDispatch(sheet.get_Cells());range.AttachDispatch(range.get_Item(COleVariant((long)i), COleVariant((long)2)).pdispVal, TRUE);//varItem.dblVal = m_PIC.m_Len[i - 2];//range.put_Item(COleVariant((long)i), COleVariant((long)2), COleVariant(m_PIC.m_Len[i - 2]));range.put_Value2(COleVariant(m_PIC.m_Len[i - 2]));range.ReleaseDispatch();//最后保存book.Save();//释放对象sheet.ReleaseDispatch();sheets.ReleaseDispatch();book.ReleaseDispatch();books.ReleaseDispatch();ExcelApp.Quit();ExcelApp.ReleaseDispatch();。

Excel数据导入与导出技巧

Excel数据导入与导出技巧

Excel数据导入与导出技巧Excel是一款功能强大的电子表格软件,广泛应用于各个领域。

在日常工作和学习中,我们常常需要将数据导入到Excel中进行处理和分析,或者将Excel中的数据导出到其他软件进行使用。

在本文中,我将分享一些Excel数据导入与导出的技巧,帮助您更高效地处理数据。

一、数据导入技巧1. 导入文本文件如果您有一个以文本格式存储的数据文件,可以通过以下步骤将其导入Excel中:1) 打开Excel,并选择要导入数据的工作表。

2) 在Excel的菜单栏中选择“数据”选项。

3) 在“导入外部数据”下拉菜单中,选择“从文本”。

4) 浏览并选择您要导入的文本文件,点击“导入”。

5) 在“文本向导”中,选择数据分隔符(如逗号、制表符等),并点击“下一步”。

6) 根据您的需要设置数据格式和分列选项,点击“完成”。

2. 导入数据库中的数据如果您需要从数据库中导入数据到Excel中进行分析或处理,可以使用Excel的数据连接功能:1) 打开Excel,并选择要导入数据的工作表。

2) 在Excel的菜单栏中选择“数据”选项。

3) 在“获取外部数据”下拉菜单中,选择“从其他来源”。

4) 选择数据库类型,根据您的需要设置数据库连接参数。

5) 选择要导入的数据表或查询,点击“导入”。

6) 在“导入数据”对话框中,选择插入数据的位置,点击“确定”。

二、数据导出技巧1. 导出为文本文件如果您需要将Excel中的数据导出为文本文件,可以按照以下步骤进行操作:1) 选择您要导出的数据范围。

2) 在Excel的菜单栏中选择“文件”选项。

3) 选择“另存为”,并选择保存为文本文件格式。

4) 设置文件名和保存位置,点击“保存”。

5) 在“文本导出向导”中,选择数据分隔符(如逗号、制表符等)和文本格式选项,点击“下一步”。

6) 根据需要进行相关设置,点击“下一步”。

7) 最后点击“完成”进行导出。

2. 导出为PDF文件如果您需要将Excel中的数据以PDF格式导出,可以按照以下步骤进行操作:1) 选择您要导出的数据范围。

VS2010的导入导出EXCEL

VS2010的导入导出EXCEL

font = range.get_Font();
font.put_Bold(covTrue);
-4108
range.put_VerticalAlignment(COleVariant((short)-4108));//xlVAlignCenter =
COleSafeArray saRet;
DWORD numElements[]={m_rows,m_cols}; //5x2 element array
附录二:将 ListCtrl 中的数据导出为 Excel 格式 CString strFile = _T("E:\\Test.xls"); COleVariant covTrue((short)TRUE), covFalse((short)FALSE), covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR); CApplication app; CWorkbooks books; CWorkbook book; CWorksheets sheets; CWorksheet sheet;
MessageBox(_T("Error!")); }
books = app.get_Workbooks();
book = books.Add(covOptional);
sheets = book.get_Worksheets(); sheet = sheets.get_Item(COleVariant((short)1)); range = sheet.get_Range(COleVariant(_T("A1")),COleVariant(_T("A1"))); range.put_Value2(COleVariant(_T("hanhan")));

VB2010_DataGridView绑定DataTable并导出为excel

VB2010_DataGridView绑定DataTable并导出为excel

VB2010_DataGridView绑定DataTable并导出为excel本人已经在VB2010下调试通过,窗口只有DataGridView, CheckBox, Button控件各一个,供各位参考,希望对大家有帮助:Imports System.Windows.FormsImports Microsoft.Office.InteropPublic Class Form1Dim oDatatable As New DataTablePrivate Sub btnExport_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnExport.Click'Using save file dialog that allow you to chosse the file name.Dim objDlg As New SaveFileDialogobjDlg.Filter = "Excel File|*.xls"objDlg.OverwritePrompt = FalseIf objDlg.ShowDialog = DialogResult.OK ThenDim filepath As String = objDlg.FileNameExportToExcel(oDatatable, filepath)End IfEnd SubPrivate Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load'set the datatable to DataGridView1's datasorurce propertyoDatatable.Columns.Add("id")oDatatable.Columns.Add("姓名")oDatatable.Rows.Add()oDatatable.Rows(0)(0) = "1"oDatatable.Rows(0)(1) = "李某某"oDatatable.Rows.Add()oDatatable.Rows(1)(0) = "2"oDatatable.Rows(1)(1) = "孙某某"oDatatable.Rows.Add()oDatatable.Rows(2)(0) = "3"oDatatable.Rows(2)(1) = "赵某某"DataGridView1.DataSource = oDatatableEnd SubPrivate Sub ExportToExcel(ByVal dtTemp As DataTable, ByVal filepath As String)Dim strFileName As String = filepathIf System.IO.File.Exists(strFileName) ThenIf (MessageBox.Show("Excel 文件已经存在,你想覆盖它吗?", "导出为Excel", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) = System.Windows.Forms.DialogResult.Yes) ThenSystem.IO.File.Delete(strFileName)ElseReturnEnd IfEnd IfDim _excel As New Excel.ApplicationDim wBook As Excel.WorkbookDim wSheet As Excel.WorksheetwBook = _excel.Workbooks.Add()wSheet = wBook.ActiveSheet()'-----------------------------------Dim dc As System.Data.DataColumnDim dr As System.Data.DataRowDim colIndex As Integer = 0Dim rowIndex As Integer = 0'---------------------------------- export the ColumnsIf CheckBox1.Checked ThenFor Each dc In dtTemp.ColumnscolIndex = colIndex + 1wSheet.Cells(1, colIndex) = dc.ColumnNameNextEnd If'--------------------------------export the rowsFor Each dr In dtTemp.RowsrowIndex = rowIndex + 1colIndex = 0For Each dc In dtTemp.ColumnscolIndex = colIndex + 1wSheet.Cells(rowIndex + 1, colIndex) = dr(dc.ColumnName)NextNextwSheet.Columns.AutoFit()wBook.SaveAs(strFileName)'----------------------------release the objectsReleaseObject(wSheet)wBook.Close(False)ReleaseObject(wBook)_excel.Quit()ReleaseObject(_excel)'----------------------------- some time Office application does not quit after automation: so i amcalling GC.Collect method.GC.Collect()MessageBox.Show("Excel 文件导出成功!")End SubPrivate Sub ReleaseObject(ByVal o As Object)TryWhile (System.Runtime.InteropServices.Marshal.ReleaseComObject(o) > 0)End WhileCatchFinallyo = NothingEnd TryEnd SubEnd Class。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、新建 C++工程 新建自己的 C++工程。 2、添加 Excel 类库 在工程名上右键,选择 Add---Class,选择 MFC Class From TypeLib,如图:
然后添加如图的几个类。
3、修改头文件 进入刚添加进来的几个类头文件中将#import 开头的这句注掉
4、修改提示的错误 将修改过的工程编译一下,出现如下错误:
// }
saRet.Detach(); //////////////////////////////////////////////////////////////////////////////////////////////////////////////////
book.SaveCopyAs(COleVariant(strFile)); // cellinterior.ReleaseDispatch();
//
// 景颜色
cellinterior.AttachDispatch(books); cellinterior.put_ColorIndex(COleVariant((short)37));//设置 EXCEL 头一行的背
// for( iRow=1; iRow <= m_rows; iRow++)//设置 EXCEL 其余的背景颜色 (颜色交替变换)
COleVariant covTrue((short)TRUE), covFalse((short)FALSE), covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR);
CApplication0 app; CWorkbook0 book; CWorkbooks0 books; CWorksheet0 sheet; CWorksheets0 sheets; CRange0 range; CFont1 font; if (!app.CreateDispatch(_T("Excel.Application"))) {
双击提示,在 DialogBox()前加下划线,如图:
5、添加头文件 在使用导出功能的文件中添加头文件:
6、使用 Excel 类库提供的函数将需要导出的数据导出为.xls 文件 经过以上几步,现在可以使用 Excel 类库提供的函数导出数据了。 与网上许多文章相对比一下,导出流程一样。只不过类库函数有所改变。函数名由 Get 改为 get_,Set 改为 put_。
saRet.Create(VT_BSTR, 2, numElements);
range = sheet.get_Range(COleVariant( _T("A2 ")),covOptional);
range = range.get_Resize(COleVariant((short)m_rows),COleVariant((short)m_cols));
BSTR bstr = szTemp.AllocSysString();
saRet.PutElement(index,bstr);
SysFreeString(bstr);
}
}
range.put_Value2(COleVariant(saRet));
// Cnterior cellinterior;
CHeaderCtrl *pmyHeaderCtrl; pmyHeaderCtrl = m_clcData.GetHeaderCtrl();//此句取得 CListCtrl 控件的列表 頭
int iRow,iCol; int m_cols = pmyHeaderCtrl-> GetItemCount(); int m_rows = m_clcData.GetItemCount(); HDITEM hdi; TCHAR lpBuffer[256];
EXCEL
for ( iRow = 1; iRow <= m_rows; iRow++)//将列表内容写入
{
for ( iCol = 1; iCol <= m_cols; iCol++)
{
index[0]=iRow-1;
index[1]=iCol-1;
CString szTemp;
szTemp=m_clcData.GetItemText(iRow-1,iCol-1);
//
books=range.get_Interior();
//
cellinterior.AttachDispatch(books);
//
if(!state)
//
cellinterior.put_ColorIndex(COleVariant((short)36));
//
else
//
cellinterior.put_ColorIndex(COleVariant((short)24));
//设置列宽
range.put_ColumnWidth(_variant_t((long)nWidth));
}
range = sheet.get_Range(COleVariant( _T("A1 ")), COleVariant(colname));
range.put_RowHeight(_variant_t((long)50));//设置行的高度
{
GetCellName(1 ,iCol + 1, colname);
me));
range = sheet.get_Range(COleVariant(colname),COleVariant(colna
pmyHeaderCtrl-> GetItem(iCol, &hdi);
range.put_Value2(COleVariant(hdi.pszText));
// { //
int state=iRow%2;
//
CString i_T("A%d "),iRow+1);
//
// m_cols));
range = sheet.get_Range(COleVariant(index),covOptional); range = range.get_Resize(COleVariant((short)1),COleVariant((short)
bool fFound = false;
hdi.mask = HDI_TEXT;
hdi.pszText = lpBuffer;
hTextMax = 256;
CString colname;
CString strTemp;
for(iCol=0; iCol <m_cols; iCol++)//将列表的标题头写入 EXCEL
二、导出 附录一: 导出 Excel 格式的简单流程 CFileDialog dlg(FALSE,_T("(*.xls)"),NULL,OFN_HIDEREADONLY |OFN_OVERWRITEPROMPT, _T("(*.xls)|*.xls||"),NULL);
if (dlg.DoModal() == IDOK) { //获取路径 CString strFileName=dlg.GetPathName();
// // ls)); //
range = sheet.get_Range(COleVariant( _T("A1 ")),covOptional); range = range.get_Resize(COleVariant((short)1),COleVariant((short)m_co
books = range.get_Interior();
font = range.get_Font();
font.put_Bold(covTrue);
-4108
range.put_VerticalAlignment(COleVariant((short)-4108));//xlVAlignCenter =
COleSafeArray saRet;
DWORD numElements[]={m_rows,m_cols}; //5x2 element array
sheets = book.get_Worksheets(); sheet = sheets.get_Item(COleVariant((short)1));
////////////////////////////////////CListCtrl 控件 report 风格 //////////////////////////////////////////////////////////
MessageBox(_T("Error!")); }
books = app.get_Workbooks();
book = books.Add(covOptional);
sheets = book.get_Worksheets(); sheet = sheets.get_Item(COleVariant((short)1)); range = sheet.get_Range(COleVariant(_T("A1")),COleVariant(_T("A1"))); range.put_Value2(COleVariant(_T("hanhan")));
book.put_Saved(true); book.ReleaseDispatch(); books.ReleaseDispatch(); app.Quit(); app.ReleaseDispatch();
C++使用 VS2010 导出/导入 Excel 的方法及步骤
相关文档
最新文档