datagridview-C#的dategridview中数据导出到excel的问题

问题描述

C#的dategridview中数据导出到excel的问题

public bool ExportDataGridview(DataGridView gridView, bool isShowExcle)
{
if (gridView.Rows.Count == 0)
{
MessageBox.Show("请您检查是否有数据导出","提示",MessageBoxButtons.OK,MessageBoxIcon.Information);
return false;
}
//创建Excel对象
Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
excel.Application.Workbooks.Add(true);

        //生成字段名称
        for (int i = 0; i < gridView.ColumnCount; i++)
        {
            excel.Cells[1, i + 1] = gridView.Columns[i].HeaderText;
        }
        //填充数据
        for (int i = 0; i < gridView.RowCount - 1; i++)   //循环行
        {
            for (int j = 0; j < gridView.ColumnCount; j++) //循环列
            {
                if (gridView[j, i].ValueType == typeof(string))
                {
                    excel.Cells[i + 2, j + 1] = "'" + gridView.Rows[i].Cells[j].Value.ToString();
                }
                else
                {
                    excel.Cells[i + 2, j + 1] = gridView.Rows[i].Cells[j].Value.ToString();
                }
            }
        }
        //设置禁止弹出保存和覆盖的询问提示框
        excel.Visible = false;
        excel.DisplayAlerts = false;
        excel.AlertBeforeOverwriting = false;

        //保存到临时工作簿
        //excel.Application.Workbooks.Add(true).Save();
        //保存文件

        excel.Save("D:" + "234.xls");//excel保存界面 点击取消 报错 异常来自 HRESULT:0x800A03EC
        excel.Quit();
        return true;
    }

异常信息:
未处理 System.Runtime.InteropServices.COMException
HResult=-2146827284
Message=异常来自 HRESULT:0x800A03EC
Source=Microsoft.Office.Interop.Excel
ErrorCode=-2146827284
StackTrace:
在 Microsoft.Office.Interop.Excel.ApplicationClass.SaveWorkspace(Object Filename)
在 Login.Form2.ExportDataGridview(DataGridView gridView, Boolean isShowExcle) 位置 D:BaiduYunDownload新建文件夹 (3)新建文件夹新建文件夹LoginForm2.cs:行号 404
在 Login.Form2.btn_ex_Click(Object sender, EventArgs e) 位置 D:BaiduYunDownload新建文件夹 (3)新建文件夹新建文件夹LoginForm2.cs:行号 355
在 System.Windows.Forms.Control.OnClick(EventArgs e)
在 System.Windows.Forms.Button.OnClick(EventArgs e)
在 System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
在 System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
在 System.Windows.Forms.Control.WndProc(Message& m)
在 System.Windows.Forms.ButtonBase.WndProc(Message& m)
在 System.Windows.Forms.Button.WndProc(Message& m)
在 System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
在 System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
在 System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
在 System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
在 System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
在 System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
在 System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
在 System.Windows.Forms.Application.RunDialog(Form form)
在 System.Windows.Forms.Form.ShowDialog(IWin32Window owner)
在 System.Windows.Forms.Form.ShowDialog()
在 Login.Form1.btn_login_Click(Object sender, EventArgs e) 位置 D:BaiduYunDownload新建文件夹 (3)新建文件夹新建文件夹LoginForm1.cs:行号 69
在 Login.Form1.txt_password_KeyDown(Object sender, KeyEventArgs e) 位置 D:BaiduYunDownload新建文件夹 (3)新建文件夹新建文件夹LoginForm1.cs:行号 109
在 System.Windows.Forms.Control.OnKeyDown(KeyEventArgs e)
在 System.Windows.Forms.Control.ProcessKeyEventArgs(Message& m)
在 System.Windows.Forms.Control.ProcessKeyMessage(Message& m)
在 System.Windows.Forms.Control.WmKeyChar(Message& m)
在 System.Windows.Forms.Control.WndProc(Message& m)
在 System.Windows.Forms.TextBoxBase.WndProc(Message& m)
在 System.Windows.Forms.TextBox.WndProc(Message& m)
在 System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
在 System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
在 System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
在 System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
在 System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
在 System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
在 System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
在 System.Windows.Forms.Application.Run(Form mainForm)
在 Login.Program.Main() 位置 D:BaiduYunDownload新建文件夹 (3)新建文件夹新建文件夹LoginProgram.cs:行号 18
在 System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
在 System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
在 Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
在 System.Threading.ThreadHelper.ThreadStart_Context(Object state)
在 System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
在 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
在 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
在 System.Threading.ThreadHelper.ThreadStart()
InnerException:

解决方案

C# dateGRIDVIEW导出EXCEL文件
C# 将listview 中的数据导出到excel 文件
C# 导出Excel数据

解决方案二:

我一般用NOPI处理EXCEL文件,问题少点

时间: 2024-10-02 09:50:24

datagridview-C#的dategridview中数据导出到excel的问题的相关文章

如何用jquery 将 datagrid中数据导出到excel?

问题描述 如何用jquery 将 datagrid中数据导出到excel? 需要用到些什么插件?有例子更好 谢谢 解决方案 一个插件,将jquery数据生成excel的xml内容的字符串.下面是插件代码 <script> /** Jquery easyui datagrid js导出excel 修改自extgrid导出excel * allows for downloading of grid data (store) directly into excel * Method: extract

Grid或者DataTable中数据导出为Excel原来这么简单_实用技巧

以前一直认为,将Grid 或者DataTable中的数据导出到Excel功能实现会非常复杂,可能会想用什么类库什么的或者实在太难就用csv算了. 看了FineUI中的将Grid导出为Excel的实现方法,实际上是可以非常简单.看来很难的问题,变换一种思路就可以非常简单. 1. Aspx后台代码输出Content Type信息 复制代码 代码如下: Response.ClearContent(); Response.AddHeader("content-disposition", &qu

asp.net C#中ListView中数据导出到Excel实例

具体代码  代码如下 复制代码 private void 导出数据_Click(object sender, EventArgs e) { ExportToExecl(); } /// <summary> /// 执行导出数据 /// </summary> public void ExportToExecl() { System.Windows.Forms.SaveFileDialog sfd = new SaveFileDialog(); sfd.DefaultExt = &qu

mysql中数据导出成excel文件语句

 代码如下 复制代码 mysql>select * from xi_table into outfile 'd:test.xls'; 导出为txt文件:  代码如下 复制代码 select * from xi_table into outfile 'd:test.txt'; 默认使用tab分割字段,记录使用n分割.可以自定义三个参数.  代码如下 复制代码 SELECT * FROMhx_9enjoy INTO OUTFILE '/tmp/9enjoy_hx.txt' FIELDS TERMIN

从asp.net中数据导出到Excel

在做asp.net程序时涉及到数据显示的时候多数会要求打印,而网页上的打印格式往往又不能满足需求,经常用的方法就是导入到Excel以后再进行打印.(仿佛这已经是老生常谈)今天在网上搜了一段打印的代码,觉得不错,需要打印的朋友可以看看. 网上好些代码的原理大致与此类似,同样都存在一个问题,就是: 类型"GridView"的控件"ctl00_center_GridView1"必须放在具有 runat=server 的窗体标记内. 说明: 执行当前 Web 请求期间,出现

将datagridview中的数据导出为Excel文件

问题描述 那位能给出C#的详细代码呢? 解决方案 解决方案二:OfficeExcelcom网上太多了我们以前用Farpoint控件.http://blog.csdn.net/blackhero/archive/2006/08/25/1116399.aspx解决方案三:privatevoidImport(DataTabledt_p){Excel.Applicationexcel=newExcel.Application();introwIndex=1;intcolIndex=0;excel.App

c#-将datagridview的数据导出为excel时出现异常

问题描述 将datagridview的数据导出为excel时出现异常 "System.InvalidCastException"类型的未经处理的异常在 FaceTest.exe 中发生 其他信息: 无法将类型为"Microsoft.Office.Interop.Excel.ApplicationClass"的 COM 对象强制转换为接口类型"Microsoft.Office.Interop.Excel._Application".此操作失败的原因

机房收费系统的实现:VB中如何将MSHFlexGrid控件中的数据导出到Excel

机房收费系统中,好多查询的窗体都包含同一个功能:将数据库中查询到的数据显示在MSHFlexGrid控件中,然后再把MSHFlexGrid控件中的数据导出到Excel表格中. 虽然之前做过学生信息管理系统,不过并没有涉及到这个功能,因此记录于此,于己,回顾反思,于大家,分享学习. 方法一:在根目录中事先建立空的Excel表格 1.在与VB工程同一根目录中建立将要导入数据的Excel表格: 2.在VB事件中写代码: Private Sub cmdExport_Click() Dim i As Int

机房收费系统——VB将MSHflexgrid控件中的数据导出为Excel

            在做机房收费系统的时候,许多窗体用到的一个功能,就是将从数据库中提取出来的数据导出到Excel中.   首先,引用Microsoft Excel 14.0 Object Library   然后,写代码     Public Sub OutDataToExcel(Flex As MSHFlexGrid) '导出至Excel Dim i As Integer Dim j As Integer Dim Line As Integer Dim outExcel As Excel