导航:首页 > 文件教程 > datagridview导出word

datagridview导出word

发布时间:2021-12-05 00:40:31

㈠ c#窗体DataGridView导出word出现问题 异常:数字必须介于 1 和 63 之间

自建了一个dataGridView,然后运行时你的源码也出现了一些问题,改了部分代码运行能成功导出,但是当你导出的列很多时(我尝试导出20多列的数据)导出的效果很难看,这是排版问题,楼主看一下吧!看在你电脑上运行怎样。

usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Windows.Forms;

{
publicpartialclassForm4:Form
{publicForm4(){InitializeComponent();}
publicvoidExportDataGridView(DataGridViewsrcDgv)
{SaveFileDialogsfile=newSaveFileDialog();
sfile.AddExtension=true;
objectVisible=true;//问题就在这里,改成true后就能正常运行了
sfile.DefaultExt=".doc";
sfile.Filter="(*.doc)|*.doc";
if(sfile.ShowDialog()==DialogResult.OK)
{
objectpath=sfile.FileName;
Objectnone=System.Reflection.Missing.Value;
Microsoft.Office.Interop.Word.ApplicationwordApp=newMicrosoft.Office.Interop.Word.Application();
wordApp.DisplayAlerts=Microsoft.Office.Interop.Word.WdAlertLevel.wdAlertsNone;
Microsoft.Office.Interop.Word.Documentdocument=wordApp.Documents.Add(refnone,refnone,refnone,refnone);
wordApp.Visible=true;
document.Activate();
//建立表格
try
{
Microsoft.Office.Interop.Word.Tabletable=document.Tables.Add(document.Paragraphs.Last.Range,srcDgv.Rows.Count,srcDgv.Columns.Count,refnone,refnone);
for(inti=0;i<srcDgv.Columns.Count;i++)//设置标题
{
table.Cell(0,i+1).Range.Text=srcDgv.Columns[i].HeaderText;
}
for(inti=1;i<srcDgv.Rows.Count;i++)//填充数据
{
for(intj=0;j<srcDgv.Columns.Count;j++)
{
table.Cell(i+1,j+1).Range.Text=srcDgv[j,i-1].Value.ToString();
}
}
document.SaveAs(refpath,refnone,refnone,refnone,refnone,refnone,refnone,refnone,refnone,refnone,refnone,refnone,refnone,refnone,refnone,refnone);
document.Close(refVisible,refnone,refnone);
MessageBox.Show("导出成功!");
}
finally
{
wordApp.Quit(refVisible,refnone,refnone);//最好把这行注释,我运行时会出现在“RPC服务器不可用”错误
}}}
privatevoidbutton1_Click(objectsender,EventArgse)
{
ExportDataGridView(dataGridView1);
}}}

㈡ 如何实现DataGridView导出CSV和XLS文件

SQLServer表数据导出为Excel文件
一、少量数据导出
1、在查询分析器中,使用SQL语句检索要导出的数据
2、选中所有数据,点击鼠标右键,选择另存为CSV文件
3、用EXCEL把CSV文件另存为xls文件。

二、表格批量导出

1、开始菜单选择"导入和导出数据"

2、选择要导出的数据库,如图配置

3、设置导出目标

4、设置目标文件

5、选择筛选数据发送

6、选择导出的表格

7、完成设置

㈢ 如何将.net中DataGridView中的数据导出到Excel文本(是在windows窗体中)

private void button2_Click(object sender, EventArgs e)

{

string strconn = "Data Source=JUKINB-SERVER;Initial Catalog=TxData;Persist Security Info=True;User ID=sa";

SqlConnection conn = new SqlConnection(strconn);

string strcom = "select * from fzje";

SqlDataAdapter sqlda = new SqlDataAdapter(strcom, conn);

DataSet sqlds = new DataSet();

sqlda.Fill(sqlds, "table1");

sqlds.Tables["table1"].AcceptChanges();

this.Cursor = Cursors.WaitCursor;

Excel.Application myExcel = new Excel.Application();

myExcel.Application.Workbooks.Add(true);

myExcel.Visible = true;

//Object Date[ds.Tables["CurrentTable"].Rows.Count][ds.Tables["CurrentTable"].Columns.Count];

//生成标题

for (int i = 0; i < sqlds.Tables["table1"].Columns.Count; i++)

{

myExcel.Cells[2, i + 1] = sqlds.Tables["table1"].Columns[i].Caption;

}

//填充数据

for (int i = 0; i < sqlds.Tables["table1"].Rows.Count; i++)

{

for (int j = 0; j < sqlds.Tables["table1"].Columns.Count; j++)

{

if (sqlds.Tables["table1"].Rows[i][j].GetType() == typeof(System.String))

{

myExcel.Cells[i + 3, j + 1] = "'" + sqlds.Tables["table1"].Rows[i][j].ToString();

}

else

{

myExcel.Cells[i + 3, j + 1] = sqlds.Tables["table1"].Rows[i][j].ToString();

}

}

}

this.Cursor = Cursors.Default;

MessageBox.Show("导出成功! ", "恭喜", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);

}

}
连接字符串自己改一下,这个方法可能速度不是很高!

㈣ c#如何把datagridview导出到excel

1.先去导入dll库:Microsoft.Office.Interop.Excel.dl

㈤ c# 中 dataGridView中的导出与打印

命名空间。。。
using System.IO;
using System.Net.Mime;
给你导出的代码。。
//导出数据
protected void Button1_Click(object sender, EventArgs e)
{ Export("application/ms-excel", "订单信息.xls", GridView2);
}
public void Export(string FileType, string FileName, GridView gv)
{
Response.Charset = "big5";
Response.ContentEncoding = System.Text.Encoding.UTF7;
Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(FileName, Encoding.UTF8).ToString());
Response.ContentType = FileType;
this.EnableViewState = true;
StringWriter tw = new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(tw);
//颜色和字体随你自己愿意
gv.BackColor = System.Drawing.Color.White;
gv.ForeColor = System.Drawing.Color.Black;
gv.RowStyle.BackColor = System.Drawing.Color.White;
gv.RowStyle.ForeColor = System.Drawing.Color.Black;
gv.AlternatingRowStyle.BackColor = System.Drawing.Color.White;
gv.AlternatingRowStyle.ForeColor = System.Drawing.Color.Black;
gv.BorderStyle = BorderStyle.Solid;
gv.BorderWidth = 1;
gv.HeaderStyle.BackColor = System.Drawing.Color.White;
gv.HeaderStyle.ForeColor = System.Drawing.Color.Black;
gv.AllowPaging = false;
gv.AllowSorting = false;
gv.Columns[0].Visible = false;
gv.Columns[7].Visible = false;
gv.Columns[9].Visible = false;// 这一列不显示
gv.DataBind();
gv.RenderControl(hw);
Response.Write(tw.ToString());
Response.End();

gv.AllowPaging = true;
gv.DataBind();

}//下面这个必须要
public override void VerifyRenderingInServerForm(Control control)
{
}

㈥ vb.net dataGridView导出EXCEL

你的参数没用对,row 没加1,修改后的代码如下(我已成功导出,注意datagridview1的参数。):

'//记录内容
row = 2
' col = 1
For i = 0 To DataGridView1.RowCount - 1
col = 1
For j = 0 To DataGridView1.ColumnCount - 1
If DataGridView1.Columns(j).Visible Then
'xlSheet.Cells(i + 2, col) = DataGridView1.Rows(i).Cells(j).Value
xlSheet.Cells(row, col) = DataGridView1(j, i).Value.ToString
col = col + 1
End If
Next
row = row + 1
Next
xlSheet.Visible = True

㈦ C# 将dataGriwView 数据导出word或者excel,求导出的方法体,最好导出为表格。 求方法体代码。

我给你一个导出成excel的吧

namespace EXCELExport
{
public class DgvExport
{
#region 变量声明
[DllImport("User32.dll", CharSet = CharSet.Auto)]
private static extern int GetWindowThreadProcessId(IntPtr hwad, out int id); //获取excel进程ID号 导出结束进程使用
private string m_FileName = DateTime.Today.ToString("yyyy-MM-dd"); //导出文件名
private DataTable dt = new DataTable();

#endregion

#region 属性定义

/// <summary>
/// 导出文件名
/// </summary>
public string FileName
{
get
{
return m_FileName;
}
set
{
m_FileName = value;
}
}

#endregion

#region 导出一张表页的Excel
/// <summary>
/// 导出带有一张表页的Excel
/// </summary>
/// <param name="theDgvExport">DgvExport类对象</param>
/// <param name="dgv">要导出的DataGrideView</param>
/// <param name="arrList">DataGrideView数据源(DataTable)</param>
/// <returns></returns>
public void DataExport(DgvExport theDgvExport,DataTable dt)
{
//-***************获取excel对象***************
string saveFileName = "";
bool fileSaved = false;
//DataTable dt2 = (DataTable) dgv.DataSource;
//dt = dvtodt(dgv);

SaveFileDialog saveDialog = new SaveFileDialog();
saveDialog.DefaultExt = "xls";
saveDialog.Filter = "Excel文件|*.xls";
saveDialog.FileName = theDgvExport.FileName;
saveDialog.ShowDialog();
saveFileName = saveDialog.FileName;

if (saveFileName.IndexOf(":") < 0) //被点了取消
{
return;
}

Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application();
if (xlApp == null)
{
MessageBox.Show("无法启动Excel,可能您的机器未安装Excel", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}

Microsoft.Office.Interop.Excel.Workbook workbook = xlApp.Workbooks.Add(true);
Microsoft.Office.Interop.Excel.Worksheet worksheet = (Microsoft.Office.Interop.Excel.Worksheet)workbook.Worksheets[1];
Microsoft.Office.Interop.Excel.Range range;

// 列索引,行索引,总列数,总行数
int colIndex = 0;
int colCount = dt.Columns.Count; ;
int rowCount = dt.Rows.Count;
ArrayList alDataType = new ArrayList();

// *****************获取数据*********************

//给Sheet命名
if (dt.TableName != null && dt.TableName != "")
{
worksheet.Name = dt.TableName;
}

for (int i = 0; i < dt.Columns.Count; i++)
{
string strName =dt.Columns[i].ColumnName;
alDataType.Add(dt.Rows[0]["" + strName + ""].GetType());

}

// 创建缓存数据
object[,] objData = new object[rowCount + 1, colCount];

// 获取列标题
colIndex = 1;
for (int i = 0; i < colCount; i++)
{
//if (!dt.Columns[i].)
//{
// continue;
//}
objData[0, colIndex - 1] = dt.Columns[i].ColumnName.ToString();
colIndex++;
}

// 获取具体数据、重置列号
for (int i = 0; i < rowCount; i++)
{
colIndex = 1;
for (int j = 0; j < colCount; j++)
{
objData[i + 1, colIndex - 1] = dt.Rows[i][j];
colIndex++;
}
}
colIndex = 0;
//*********************特殊数字格式*******************
for (int i = 0; i < alDataType.Count; i++)
{
Type ty = (Type)alDataType[i];
switch (ty.Name)
{
case "DBNull":
range = worksheet.get_Range(xlApp.Cells[2, i + 1], xlApp.Cells[rowCount + 1, i + 1]);
range.NumberFormat = "@";
break;
case "String":
range = worksheet.get_Range(xlApp.Cells[2, i + 1], xlApp.Cells[rowCount + 1, i + 1]);
range.NumberFormat = "@";
break;
case "DateTime":
range = worksheet.get_Range(xlApp.Cells[2, i + 1], xlApp.Cells[rowCount + 1, i + 1]);
range.NumberFormat = "yyyy-MM-dd";
break;
case "Decimal":
range = worksheet.get_Range(xlApp.Cells[2, i + 1], xlApp.Cells[rowCount + 1, i + 1]);
range.NumberFormat = "#,##0.00";
break;
case "Float":
range = worksheet.get_Range(xlApp.Cells[2, i + 1], xlApp.Cells[rowCount + 1, i + 1]);
range.NumberFormat = "#,##0.00";
break;
case "Money":
range = worksheet.get_Range(xlApp.Cells[2, i + 1], xlApp.Cells[rowCount + 1, i + 1]);
range.NumberFormat = "#,##0.00";
break;
case "Double":
range = worksheet.get_Range(xlApp.Cells[2, i + 1], xlApp.Cells[rowCount + 1, i + 1]);
range.NumberFormat = "#,##0.00";
break;
}
}

//********************* 写入Excel*******************

range = worksheet.get_Range(xlApp.Cells[1, 1], xlApp.Cells[rowCount+1, colCount]);
range.Value2 = objData;

Application.DoEvents();

//*******************设置输出格式******************************
//表头
range = worksheet.get_Range(xlApp.Cells[1, 1], xlApp.Cells[1, colCount]);
range.Font.Size = 9;
range.HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter;

//表体
range = worksheet.get_Range(xlApp.Cells[2, 1], xlApp.Cells[rowCount + 1, colCount]);
range.Font.Size = 9;

//***************************保存**********************

if (saveFileName != "")
{
try
{
workbook.Saved = true;
workbook.SaveCopyAs(saveFileName);
fileSaved = true;
}

catch (Exception ex)
{
fileSaved = false;
MessageBox.Show("导出文件时出错,文件可能正被打开!\n" + ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
else
{
fileSaved = false;
}

xlApp.Quit();
GC.Collect();//强行销毁

IntPtr ff = new IntPtr(xlApp.Hwnd);
int k = 0;
GetWindowThreadProcessId(ff, out k);
System.Diagnostics.Process pss = System.Diagnostics.Process.GetProcessById(k);
pss.Kill();

if (fileSaved)
{
MessageBox.Show("导出成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else
{
MessageBox.Show("导出失败!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
#endregion

#region 导出带有多张表页的Excel
/// <summary>
/// 导出带有多张表页的Excel
/// </summary>
/// <param name="theDgvExport">DgvExport类对象</param>
/// <param name="dgv">要导出的DataGrideView</param>
/// <param name="arrList">DataGrideView数据源(DataTable)的集合</param>
/// <returns></returns>
public bool DataExports(DgvExport theDgvExport, DataGridView dgv, ArrayList arrList)
{
string saveFileName = "";
bool fileSaved = false;

return fileSaved;
}
#endregion

#region dataGridView转换成dataTable
public DataTable dvtodt(DataGridView dv)
{
dt.Columns.Clear();
dt.Rows.Clear();
dt.Clear();
DataColumn dc;
for (int i = 0; i < dv.Columns.Count; i++)
{
dc = new DataColumn();
dc.ColumnName = dv.Columns[i].Name;
dt.Columns.Add(dc);
}
for (int j = 0; j < dv.Rows.Count; j++)
{
DataRow dr = dt.NewRow();
for (int x = 0; x < dv.Columns.Count; x++)
{
dr[x] = dv.Rows[j].Cells[x].Value;
}
dt.Rows.Add(dr);
}
return dt;
}

#endregion

}
}

㈧ 在线等~~~c#窗体DataGridView导出word出现问题 异常:数字必须介于 1 和 63 之间

document.SaveAs(ref path, ref none, ref none, ref none, ref none, ref none, ref none, ref none, ref none, ref none, ref none, ref none, ref none, ref none, ref none, ref none);是不是SaveAs中的某个的参数有问题

㈨ 跪求c#代码将datagridview表格中内容输出到word中

public void ExportDataGridView(DataGridView srcDgv)
{
SaveFileDialog sfile = new SaveFileDialog();
sfile.AddExtension = true;
sfile.DefaultExt = ".doc";
sfile.Filter = "(*.doc)|*.doc";
if (sfile.ShowDialog() == DialogResult.OK)
{
object path = sfile.FileName;
Object none = System.Reflection.Missing.Value;
Word.Application wordApp = new Word.Application();
Word.Document document = wordApp.Documents.Add(ref none, ref none, ref none, ref none);
//建立表格
Word.Table table = document.Tables.Add(document.Paragraphs.Last.Range, srcDgv.Rows.Count , srcDgv.Columns.Count, ref none, ref none);
try
{
for (int i = 0; i < srcDgv.Columns.Count; i++)//设置标题
{
table.Cell(0, i + 1).Range.Text = srcDgv.Columns[i].HeaderText;
}
for (int i = 1; i < srcDgv.Rows.Count; i++)//填充数据
{
for (int j = 0; j < srcDgv.Columns.Count; j++)
{
table.Cell(i+1, j + 1).Range.Text = srcDgv[j, i - 1].Value.ToString();
}
}
document.SaveAs(ref path, ref none, ref none, ref none, ref none, ref none, ref none, ref none, ref none, ref none, ref none, ref none, ref none, ref none, ref none, ref none);
document.Close(ref none, ref none, ref none);
MessageBox.Show("导出成功!");
}
finally
{
wordApp.Quit(ref none, ref none, ref none);
}
}
}

㈩ c# 怎么把dataGridView的数据 用Excel导出! 详细点啊

具体实例如下:

1.先去导入dll库:Microsoft.Office.Interop.Excel.dl

阅读全文

与datagridview导出word相关的资料

热点内容
编程里n怎么表示正整数 浏览:391
微信聊天记录存储的文件夹 浏览:590
iphone5s基带版本查询 浏览:548
江阴证件文件翻译多少钱 浏览:316
javaruntime142 浏览:610
word把数字变斜 浏览:372
小米6忘记锁屏密码怎么办啊 浏览:462
北京白领都用什么社交app 浏览:518
政法app哪个好用 浏览:514
房产平台如何推广新网站 浏览:701
u盘导文件总是中断 浏览:995
下载的招标文件打不开是为什么 浏览:356
都市美艳后宫 浏览:435
十部顶级古埃及电影 浏览:107
linux用户读写权限 浏览:936
少侠十七妻全文阅读 浏览:422
公主奴 浏览:856
k9d3 浏览:182
分卷阅读 玩武警少尉 浏览:44
知乎写小说入口 浏览:772

友情链接