![](/img/trans.png)
[英]Set data type like number, text and date in excel column using Microsoft.Office.Interop.Excel in c#
[英]Move data Excel to Right Column after 40 Rows Data using Microsoft.Office.Interop.Excel in C#
我想问一下从Gridviews导出到Excel的数据。 对于exp,如果我在gridview中有500个数据,我希望我的数据可以在40行后移到右列,因为如果我在右侧打印出这么多的空白空间。 这是我将gridview导出到Excel的代码。
private void exToExcel()
{
if (RekapdataGridView.Rows.Count > 0)
{
Microsoft.Office.Interop.Excel.Application XcelApp = new Microsoft.Office.Interop.Excel.Application();
XcelApp.Application.Workbooks.Add(Type.Missing);
Microsoft.Office.Interop.Excel.Worksheet lembarKerja = XcelApp.ActiveSheet as Microsoft.Office.Interop.Excel.Worksheet;
XcelApp.Cells[1, 1] = "Tanggal";
XcelApp.Cells[1, 2] = labelTglRekap.Text;
XcelApp.Cells[2, 1] = "Kode Pemain";
XcelApp.Cells[2, 2] = labelKodePemain.Text;
int x = RekapdataGridView.RowCount;
for (int i = 1; i < RekapdataGridView.Columns.Count + 1; i++)
{
XcelApp.Cells[4, i] = RekapdataGridView.Columns[i - 1].HeaderText;
}
for (int i = 0; i < RekapdataGridView.Rows.Count; i++)
{
for (int j = 0; j < RekapdataGridView.Columns.Count; j++)
{
//"'{0}" untuk menampilkan 0 pada awal angka
XcelApp.Cells[i + 5, j + 1] = string.Format("'{0}",RekapdataGridView.Rows[i].Cells[j].Value);
}
}
//bold pada judul table
lembarKerja.Range["A4"].EntireRow.Font.Bold = true;
//untuk menampilkan border pada excel
var batas = x + 4;
Excel.Range last = lembarKerja.Cells.SpecialCells(Excel.XlCellType.xlCellTypeLastCell, Type.Missing);
Excel.Range cellRange = lembarKerja.get_Range("A4", last);
Excel.Borders xborders = cellRange.Borders;
xborders.LineStyle = Excel.XlLineStyle.xlContinuous;
xborders.Weight = 2d;
XcelApp.Columns.AutoFit();
XcelApp.Visible = true;
}
}
这是我的Excel中的图像:
我想更改为:
4次后移到F列,希望单元格“ a1:b2”中的标题可以重复到下一页,例如Excel中的“打印标题”功能。
当所有类似数据都位于同一列或同一行中时,Excel往往会发挥最大的作用。
如果我理解正确,我会一直计数到将40个单元格写入列,然后将2加到列int上。
for (int i = 0; i < RekapdataGridView.Rows.Count; i++)
{
for (int j = 0; j < RekapdataGridView.Columns.Count; j++)
{
count++;
if(count == 40)
{
count = 0;
columnnumb = columnnumb + 2;
}
XcelApp.Cells[i + 5, j + columnnumb] = string.Format("'{0}", RekapdataGridView.Rows[i].Cells[j].Value);
}
}
像这样的事情,我还没有测试过,但是想法是每次在当前列中打印40行时,都要移动列号。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.