读书人

C# 导出Excel

发布时间: 2013-10-17 17:26:17 作者: rapoo

C# 导出Excel 求助
这个是使用csv 导出的表格,表格如下:
C# 导出Excel
我想得到这样的这样的格式:如下:
C# 导出Excel

简单来说就是想合并某些列 但是csv 格式好像不行,但是又不想使用excel.dll 生成写复杂的语句,有什么方法吗?
Excel?csv?合并列 excel? csv? 合并列
[解决办法]
你输出一个<table>就保存到.xls可以了,html的table懂得合并行或列吧(rowspan和colspan),这样做简单,不用引用什么dll
[解决办法]
以前导出过,这个方法里获取了sheet对象,里面应该有所有的跨行跨列的API,你可以找找


public bool ExportExcel(DataGridViewX dtSource, string saveFileName)
{
DataTable dt = (DataTable)dtSource.DataSource;
if (dt.Rows.Count == 0
[解决办法]
dt==null)
{
return false;
}
else
{
Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application();
Microsoft.Office.Interop.Excel.Workbooks workbooks = xlApp.Workbooks;
Microsoft.Office.Interop.Excel.Workbook workbook = workbooks.Add(Microsoft.Office.Interop.Excel.XlWBATemplate.xlWBATWorksheet);//创建sheet
Microsoft.Office.Interop.Excel.Worksheet worksheet = (Microsoft.Office.Interop.Excel.Worksheet)workbook.Worksheets[1];//写死,只操作sheet1
//添加列标题
for (int i = 0; i < dt.Columns.Count; i++)
{
worksheet.Cells[1, i + 1] = dt.Columns[i].ColumnName;
}
//添加内容
for (int r = 0; r < dt.Rows.Count; r++)
{
for (int i = 0; i < dt.Columns.Count; i++)
{
worksheet.Cells[r + 2, i + 1] = dt.Rows[r][i];
}
System.Windows.Forms.Application.DoEvents();
}
worksheet.Columns.EntireColumn.AutoFit();//自适应列宽,很实用
Microsoft.Office.Interop.Excel.Range rg = worksheet.Range[worksheet.Cells[2, 2], worksheet.Cells[dt.Rows.Count + 1, 2]];
rg.NumberFormat = "00000000";
if (saveFileName != "")
{
try
{
workbook.Saved = true;


workbook.SaveCopyAs(saveFileName);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
xlApp.Quit();
GC.Collect();
return true;
}
}


[解决办法]
http://blog.csdn.net/happy09li/article/details/7431967

读书人网 >C#

热点推荐