DataGridView中到Excel用彩色细胞 [英] DataGridView To Excel With Colored Cells
本文介绍了DataGridView中到Excel用彩色细胞的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我看了很多例子和演示,但我不能给它。
我想转换的datagridview出类拔萃。
我的结果
http://i.imgur.com/ujvGiXX巴纽
但其转换到Excel这样的
的 http://i.imgur.com/0OXkUkL.png
我要复制单元格的大小和颜色,但怎么样?
我转换成与此代码先争优
Excel.Application xlApp ;
Excel.Workbook xlWorkBook;
Excel.Worksheet xlWorkSheet;
对象misValue = System.Reflection.Missing.Value;
Int16的I,J;
xlApp =新Excel.Application();
xlWorkBook = xlApp.Workbooks.Add(misValue);
xlWorkSheet =(Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);
为(i = 0; I< = dataGridView1.RowCount - 2;我++)
{
为(J = 0; J< = dataGridView1.ColumnCount - 1 ; J ++)
{
xlWorkSheet.Cells [I + 1,J + 1] = dataGridView1 [J,I] .Value.ToString();
}
}
SaveFileDialog SFD =新SaveFileDialog();
sfd.Filter =Excel文档(的* .xls)| * .xls的;
sfd.FileName = listBox1.SelectedItem.ToString()++ listBox3.SelectedItem.ToString()+STOKReçeteleri+的.xls
如果(sfd.ShowDialog()== DialogResult.OK)
{
// ToCsV(dataGridView1,sfd.FileName); //这里dataGridview1是网格视图名称
xlWorkBook.SaveAs(sfd.FileName,Excel.XlFileFormat.xlWorkbookNormal,misValue,misValue,misValue,misValue,Excel.XlSaveAsAccessMode.xlExclusive,misValue,misValue,misValue,misValue,misValue );
//xlWorkBook.SaveAs(sfd.FileName,Excel.XlFileFormat.X
的FileInfo的fileInfo =新的FileInfo(sfd.FileName);
}
xlWorkBook.Close(真,misValue,misValue);
xlApp.Quit();
releaseObject(xlWorkSheet);
releaseObject(xlWorkBook);
releaseObject( xlApp);
解决方案
更新内部循环是:< BR>
为(i = 0; I< = dataGridView1.RowCount - 2;我++)
{
。对于(J = 0; J< = dataGridView1.ColumnCount - 1; J ++)
{
范围范围=(范围)xlWorkSheet.Cells [I + 1,J + 1];
xlWorkSheet.Cells [I + 1,J + 1] = dataGridView1 [J,I] .Value.ToString();
range.Interior.Color = System.Drawing.ColorTranslator.ToOle(dataGridView1.Rows [I] .DefaultCellStyle.BackColor);
}
}
不要忘了:结果
使用的Microsoft.Office.Interop.Excel;
请参阅:结果的更改与C#
细胞的背景
I looked a lots of example and demo but I could not to it.
I'm trying to convert datagridview to excel.
My Results http://i.imgur.com/ujvGiXX.png
But its convert to excel like this http://i.imgur.com/0OXkUkL.png
I want to copy cells size and color but how?
I convert to excel with this code
Excel.Application xlApp;
Excel.Workbook xlWorkBook;
Excel.Worksheet xlWorkSheet;
object misValue = System.Reflection.Missing.Value;
Int16 i, j;
xlApp = new Excel.Application();
xlWorkBook = xlApp.Workbooks.Add(misValue);
xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);
for (i = 0; i <= dataGridView1.RowCount - 2; i++)
{
for (j = 0; j <= dataGridView1.ColumnCount - 1; j++)
{
xlWorkSheet.Cells[i + 1, j + 1] = dataGridView1[j, i].Value.ToString();
}
}
SaveFileDialog sfd = new SaveFileDialog();
sfd.Filter = "Excel Documents (*.xls)|*.xls";
sfd.FileName = listBox1.SelectedItem.ToString() + " " + listBox3.SelectedItem.ToString() + " Stok Reçeteleri" + ".xls";
if (sfd.ShowDialog() == DialogResult.OK)
{
//ToCsV(dataGridView1, sfd.FileName); // Here dataGridview1 is your grid view name
xlWorkBook.SaveAs(sfd.FileName, Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue, Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue);
//xlWorkBook.SaveAs(sfd.FileName, Excel.XlFileFormat.X
FileInfo fileInfo = new FileInfo(sfd.FileName);
}
xlWorkBook.Close(true, misValue, misValue);
xlApp.Quit();
releaseObject(xlWorkSheet);
releaseObject(xlWorkBook);
releaseObject(xlApp);
解决方案
update the internal loop to be:
for (i = 0; i <= dataGridView1.RowCount - 2; i++)
{
for (j = 0; j <= dataGridView1.ColumnCount - 1; j++)
{
Range range = (Range)xlWorkSheet.Cells[i + 1, j + 1];
xlWorkSheet.Cells[i + 1, j + 1] = dataGridView1[j, i].Value.ToString();
range.Interior.Color = System.Drawing.ColorTranslator.ToOle(dataGridView1.Rows[i].DefaultCellStyle.BackColor );
}
}
don't forget:
using Microsoft.Office.Interop.Excel;
see:
Change the background of Cells with C#
这篇关于DataGridView中到Excel用彩色细胞的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文