C#gridview导出excel设置某行颜色问题

guoyanhong1111 2011-09-23 02:00:55
C#gridview导出excel设置某行颜色问题,这是我们目前的导出方法,我不想采用那种绘制Excel的形式,想能够直接设置属性就解决问题!请问大侠怎么搞?

/// <summary>
/// DataGridView数据导至Excel表中
/// </summary>
/// <param name="dgView">要导出的数据</param>
public static void ExportToExcel(DataGridView dgView)
{
string saveFileName = "";

SaveFileDialog saveDialog = new SaveFileDialog();
saveDialog.DefaultExt = "xls";
saveDialog.Filter = "Excel文件|*.xls";
saveDialog.Title = "保存为EXCEL文件";
if (saveDialog.ShowDialog() == DialogResult.OK)
{
saveFileName = saveDialog.FileName;
Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application();

if (xlApp == null)
{
MessageBox.Show("无法启动Excel,可能您的机子未安装Excel");
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 = 1;
int RowIndex = 1;
int colCount = dgView.ColumnCount;
int RowCount = dgView.Rows.Count;

object[,] objData = new object[RowCount + 1, colCount];
range = worksheet.get_Range(xlApp.Cells[RowIndex, 1], xlApp.Cells[RowIndex, colCount]);

foreach (DataGridViewColumn cs in dgView.Columns)
{
worksheet.Cells[RowIndex, colIndex++] = cs.HeaderText;
}

// 获取具体数据
for (RowIndex = 2; RowIndex <= RowCount + 1; RowIndex++)
{
range = worksheet.get_Range(xlApp.Cells[RowIndex, 1], xlApp.Cells[RowIndex, colCount]);
range.ColumnWidth = 25;
range.NumberFormat = "@";
for (colIndex = 1; colIndex <= colCount; colIndex++)
{
worksheet.Cells[RowIndex, colIndex] = Convert.ToString(dgView.Rows[RowIndex - 2].Cells[colIndex - 1].Value);
}
}

//保存
if (saveFileName != "")
{
workbook.Saved = true;
workbook.SaveCopyAs(saveFileName);
MessageBox.Show("导出转换成功记录完成!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}

//释放内存
xlApp.Quit();
GC.Collect();
}
}
...全文
501 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
luozhangwen 2011-09-26
  • 打赏
  • 举报
回复
快一年没来CSDN回帖了
帮忙顶个.. 无能为力!
SHAKA919 2011-09-23
  • 打赏
  • 举报
回复
excelRange.Cells.Interior.Color = System.Drawing.Color.FromArgb(255, 204, 153).ToArgb()
这句可以更改颜色~
monkeyHere 2011-09-23
  • 打赏
  • 举报
回复
excelRange.Cells.Interior.Color = System.Drawing.Color.FromArgb(255, 204, 153).ToArgb()
guoyanhong1111 2011-09-23
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 wangyong0921 的回复:]
C# code

Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application();
Microsoft.Office.Interop.Excel.Workbooks wBooks = xlApp.Workbooks;
Microsoft.Offic……
[/Quote]
还是没有效果呀?
Just4life 2011-09-23
  • 打赏
  • 举报
回复

Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application();
Microsoft.Office.Interop.Excel.Workbooks wBooks = xlApp.Workbooks;
Microsoft.Office.Interop.Excel.Workbook wBook = wBooks.Add(System.Reflection.Missing.Value);
Microsoft.Office.Interop.Excel.Worksheet wSheet = (Microsoft.Office.Interop.Excel.Worksheet)wBook.ActiveSheet;
Microsoft.Office.Interop.Excel.Range rg = null;
rg = wSheet.get_Range("A" + 1, "L" + 1);
rg.Interior.ColorIndex = 34;

110,502

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧