.net 导出html 到excel 合并单元格,Asp.net读取Excel中合并单元格解决办法---成功(极品)...

Microsoft.Office.Interop.Excel.dll版本是14.0

//文件上传

btn_dr_fp_Click(null, null);

string wjm = "";

if (ViewState["zrpzy085"] != null)

{

wjm = ViewState["zrpzy085"].ToString();

}

System.Threading.Thread.Sleep(1000);

string strFileName=Server.MapPath("~/exceldr/") + wjm;

object missing = System.Reflection.Missing.Value;

Application excel = new Application();//lauch excel application

if (excel == null)

{

Response.Write("");

}

else

{

excel.Visible = false; excel.UserControl = true;

// 以只读的形式打开EXCEL文件

Workbook wb = excel.Application.Workbooks.Open(strFileName, missing, true, missing, missing, missing,

missing, missing, missing, true, missing, missing, missing, missing, missing);

//取得第一个工作薄

Worksheet ws = (Worksheet)wb.Worksheets.get_Item(1);

//取得总记录行数   (包括标题列)

int rowsint = ws.UsedRange.Cells.Rows.Count; //得到行数

//测试一下

// this.Lbl_ts.Text = rowsint.ToString();打开excel成功

//判断单元格是否合并

// Range excelRange =ws.UsedRange;

try

{

/*

Range oCurCell;

oCurCell = ((Range)excelRange.Cells[6, 0]).MergeCells;

if(oCurCell!=null)

{

this.Lbl_ts.Text = "是合并单元格";

}

*/

// Range subRange = (Range)excelRange.Cells[6, 0];

Range rng1 = ws.Cells.get_Range("A8", "A8");

if(rng1.MergeCells)

{

this.Lbl_ts.Text = "是合并单元格";

}

else

{

this.Lbl_ts.Text = "不是合并单元格";

}

}

catch(Exception err)

{

this.Lbl_ts.Text = err.Message;

}

finally

{

excel.Quit(); excel = null;

Process[] procs = Process.GetProcessesByName("excel");

foreach (Process pro in procs)

{

pro.Kill();//没有更好的方法,只有杀掉进程

}

GC.Collect();

}

}

原文:https://www.cnblogs.com/zrprj/p/12238310.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要将 DataGridView 导出Excel 表格,可以使用 Microsoft.Interop.Excel 库来创建 Excel 应用程序、工作簿和工作表,并将 DataGridView 数据写入工作表。要考虑单元格合并,可以使用 Range 对象来操作单元格。 下面是示例代码: ```vb.net Imports Microsoft.Office.Interop Private Sub ExportToExcel(ByVal dgv As DataGridView) ' 创建 Excel 应用程序 Dim excelApp As New Excel.Application() ' 创建工作簿 Dim workbook As Excel.Workbook = excelApp.Workbooks.Add() ' 获取第一个工作表 Dim worksheet As Excel.Worksheet = CType(workbook.Sheets(1), Excel.Worksheet) ' 写入列标题 For i As Integer = 0 To dgv.Columns.Count - 1 worksheet.Cells(1, i + 1) = dgv.Columns(i).HeaderText Next ' 写入单元格数据 For i As Integer = 0 To dgv.Rows.Count - 1 For j As Integer = 0 To dgv.Columns.Count - 1 Dim cell As Excel.Range = worksheet.Cells(i + 2, j + 1) cell.Value = dgv.Rows(i).Cells(j).Value ' 如果当前单元格与左边的单元格内容相同,则合并单元格 If j > 0 AndAlso dgv.Rows(i).Cells(j).Value = dgv.Rows(i).Cells(j - 1).Value Then Dim prevCell As Excel.Range = worksheet.Cells(i + 2, j) Dim range As Excel.Range = worksheet.Range(prevCell, cell) range.Merge() End If Next Next ' 保存 Excel 文件 Dim saveFileDialog As New SaveFileDialog() saveFileDialog.Filter = "Excel 文件|*.xlsx" saveFileDialog.Title = "保存为 Excel 文件" If saveFileDialog.ShowDialog() = DialogResult.OK Then workbook.SaveAs(saveFileDialog.FileName) MessageBox.Show("Excel 文件已保存。") End If ' 关闭 Excel 应用程序 excelApp.Quit() End Sub ``` 在上面的代码,我们首先创建了一个 Excel 应用程序,然后创建了一个工作簿和一个工作表。我们使用循环写入 DataGridView 的列标题和单元格数据,如果当前单元格与左边的单元格内容相同,则使用 Range.Merge 方法合并单元格。最后,我们使用 SaveFileDialog 对话框来让用户选择文件保存位置,并将工作簿保存为 Excel 文件。 请注意,上面的代码需要引用 Microsoft.Interop.Excel 库。可以通过 NuGet 包管理器安装 Microsoft.Office.Interop.Excel 包。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值