/// <summary>
/// 将传入的数据保存在同一个Excel应用程序中
/// </summary>
public void dgvToExcelNEW(DataGridView datadgvMain, string _nameM, DataGridView datadgvDay, string _nameDay, DataGridView datadgvDetail, string _nameDetail)
{
Application app = new Microsoft.Office.Interop.Excel.Application();
Workbook wb = app.Workbooks.Add(System.Reflection.Missing.Value);
Worksheet ws = null;
if (datadgvDay.RowCount >= 1)
{
if (datadgvDetail.RowCount >= 1)
{
ws = newWeeksheet(datadgvDetail, _nameDetail, wb, ws,1);
ws = newWeeksheet(datadgvDay, _nameDay, wb, ws, 2);
ws = newWeeksheet(datadgvMain, _nameM, wb, ws, 3);
}
else
{
ws = newWeeksheet(datadgvDay, _nameDay, wb, ws, 1);
ws = newWeeksheet(datadgvMain, _nameM, wb, ws, 2);
}
}
else
{
ws = newWeeksheet(datadgvMain, _nameM, wb, ws,1);
}
app.Visible = true;
}
/// <summary>
/// Worksheet 添加数据
/// </summary>
/// <param name="datagridview">DataGridView</param>
/// <param name="SheetName">SheetName</param>
/// <param name="wb">Workbook case</param>
/// <param name="ws">Worksheet case</param>
/// <param name="iRang">工作薄在Workbook 中的index</param>
/// <returns></returns>
private static Worksheet newWeeksheet(DataGridView datagridview, string SheetName, Workbook wb, Worksheet ws,int iRang)
{
DataSet ds =new DataSet();
DataTable table = new System.Data.DataTable();
int iRows = 0;
int iCols = 0;
int iTrueCols = 0;
if (wb.Worksheets.Count > 0)
{
ws = (Worksheet)wb.Worksheets.get_Item(iRang);
}
else
{
wb.Worksheets.Add(System.Reflection.Missing.Value, System.Reflection.Missing.Value, System.Reflection.Missing.Value, System.Reflection.Missing.Value);
ws = (Worksheet)wb.Worksheets.get_Item(1);
}
if (ws != null)
{
if (SheetName.Trim() != "")
{
ws.Name = SheetName;
}
iRows = datagridview.Rows.Count; //加上列头行
iTrueCols = datagridview.Columns.Count; //包含隐藏的列,一共有多少列
//求列数,省略Visible = false的列
for (int i = 0; i < datagridview.Columns.Count; i++)
{
if (datagridview.Columns[i].Visible) iCols++;
}
string[,] dimArray = new string[iRows + 1, iCols];
for (int j = 0, k = 0; j < iTrueCols; j++)
{
//省略Visible = false的列
if (datagridview.Columns[j].Visible)
{
dimArray[0, k] = datagridview.Columns[j].HeaderText;
k++;
}
}
for (int i = 0; i < iRows; i++)
{
for (int j = 0, k = 0; j < iTrueCols; j++)
{
//省略Visible = false的列
if (datagridview.Columns[j].Visible)
{
if (datagridview.Rows[i].Cells[j].Value != null)
{
dimArray[i + 1, k] = datagridview.Rows[i].Cells[j].Value.ToString();
}
else
{
dimArray[i + 1, k] = "";
}
k++;
}
}
}
ws.get_Range(ws.Cells[1, 1], ws.Cells[iRows + 1, iCols]).Value2 = dimArray;
ws.get_Range(ws.Cells[1, 1], ws.Cells[1, iCols]).Font.Bold = true;
ws.get_Range(ws.Cells[1, 1], ws.Cells[iRows + 1, iCols]).Font.Size = 10.0;
ws.get_Range(ws.Cells[1, 1], ws.Cells[iRows + 1, iCols]).RowHeight = 14.25;
//ws.Columns[.ColumnWidth = datagridview.Columns[0].Width;
for (int j = 0, k = 0; j < iTrueCols; j++)
{
//省略Visible = false的列
if (datagridview.Columns[j].Visible)
{
ws.get_Range(ws.Cells[1, k + 1], ws.Cells[1, k + 1]).ColumnWidth = (datagridview.Columns[j].Width / 8.4) > 255 ? 255 : (datagridview.Columns[j].Width / 8.4);
//ws.Columns.c = datagridview.Columns[j].Width;
k++;
}
}
}
return ws;
}
C# 操作datagridview对excel的导入导出并实现打印功能
5星 · 超过95%的资源 需积分: 16 159 浏览量
2009-08-18
14:42:37
上传
评论 2
收藏 268KB RAR 举报
zk12141985
- 粉丝: 3
- 资源: 104
最新资源
- mmqrcode1714153659780.png
- Screenshot_2024-04-27-06-08-58-486_com.baidu.xin.aiqicha.jpg
- 基于Javaweb+Tomcat+MySQL的大学生公寓管理系统+sql文件.zip
- 实训作业基于javaweb的订单管理系统源码+数据库+实训报告.zip
- 多机调度问题贪心算法基于最小堆和贪心算法求解多机调度问题.zip
- 基于同态加密技术的匿名电子投票系统源码.zip
- Pyqt5项目框架-PyQt项目开发实践
- 基于C通过MQTT的智能农业大棚管理系统(本科毕业设计)
- python+CNN的网络入侵检测算法源码.zip
- js 实现记住密码功能 js.cookie.min.js
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
- 1
- 2
- 3
- 4
- 5
- 6
前往页