Tag: vb.net

从vb.net打印时,excel中的新行字符

我正在尝试打印一个值包含行分隔符如ALT + ENTER或Char(10) 。 到目前为止的一切只是打印我的文本,以便它打印我要包装在Excel中的值是在不同的单元格中 在我的vb.net代码,我不断build立一个string,我通过报告循环,我已经尝试vbcrlf , vbcrlf等尝试和模仿ALT + ENTER条目在Excel中使用类似于下面的东西 _string = _string & vbcrlf & report.name &" " & _pctstatus &"%" 然后我把这个string粘贴到A1使用 Clipboard.SetDataObject(_string.ToString, False) aRange.Select() aWorkSheet.Paste() 在图片中,你可以看到我不断得到A3的值,但我真的想在A1的结果 我可以通过将我的文本构build为公式来解决此问题,以便Char(10)处于单元格公式中,但是我宁愿只input一个string值而不使用公式。 我也必须这样做,因为我受到Excel报告中的空闲单元格数量的限制,因为我将这个Excel表单添加得很重

如何调整网格导出的Excel的列宽?

我们在ASP.net中使用Telerik的Grid组件(该软件包称为ASP.NET AJAX)。 网格非常舒适,它提供了“导出到Excel”function。 不幸的是,自定义Excel的方式似乎是有限的。 问题是: 我怎样才能使所得的excel拟合的列宽度最宽的单元格的内容? Public Sub ExportGridToExcel(vGrid As RadGrid) mIsExporting = True vGrid.Rebind() vGrid.ExportSettings.Excel.Format = GridExcelExportFormat.Biff vGrid.MasterTableView.ExportToExcel() End Sub

将GridView导出到Excel时出现System.OutOfMemoryException

我有一个子导出一个ASP Gridview的Excel,它工作正常,但是,当有大量的行我得到这个错误: Exception of type 'System.OutOfMemoryException' was thrown. 任何想法如何解决这个问题? 这是我出口到Excel的子: Protected Sub btnExportMonthlyUK_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnExportMonth.Click Dim title As String title = "MonthlyReportUK" Response.Clear() Response.AddHeader("content-disposition", String.Format("attachment;filename={0}.xls", title)) Response.Charset = "" Response.ContentType = "application/vnd.xls" Response.ContentEncoding = Encoding.Unicode Response.BinaryWrite(Encoding.Unicode.GetPreamble()) Dim strWr As New StringWriter() Dim HtmlWr As New HtmlTextWriter(strWr) monthlyReportsIE.AllowPaging = […]

当用Excel打开HTML文件时,IE中的“无法读取文件”错误,但是当首先“保存”

这是我在这个论坛的第一个问题,所以请原谅任何新手的错误。 在.NET应用程序中,我有.Net代码,它根据从数据库中提取的数据dynamic创build一个html表格,然后将其stream式传输到用户的web浏览器,以在Excel中打开。 这在Chrome中运行得很好。 只要用户在点击“下载”链接后select“保存”选项(在打开文件之前保存文件),而不是“打开”选项 – 它试图读取文件stream向客户端。 但在IE 11中,如果他们select“打开”选项,他们会从Excel中得到有关文件格式的警告(因为它是一个html文件 – 如果先保存,同样的事情发生,这是可以接受的),但当他们点击“是”打开时,他们会看到“无法读取文件”。 错误信息。 在一个案例中,我能够通过replace实例来解决这个问题,如果数据中的“&”用“and”来代替。 但是,在其他情况下,我无法确定可能导致问题的特定数据值。 而且,只要用户首先保存,文件就可以正常打开。 (事实上​​,当我在开发环境中点击“打开”而不是“保存”时,它甚至可以正常工作,但是当我从部署代码的testing服务器上执行时,却不能正常工作。) 所以,我正在寻找一种方法来删除/replacehtml表格中“td”元素中显示的所有有问题的数据,或者,更好的方法是使“Open”选项具有与“保存“选项。 再次,只要文件被保存,html表格内容就会打开。 html表是由C#类生成的,但是stream式传输文件的页面是在VB.Net中。 我不认为C#代码会有用(但如果有人认为它可以部分发布),但这里是相关部分的VB代码: Response.Clear() Response.ClearContent() Response.ClearHeaders() Dim htmlTable As String '[snip – populate htmlTable with data from database] Dim fileName As String = "Whatever.xls" Response.Buffer = false Response.ContentType = "application/vnd.ms-excel" Response.AppendHeader("Content-Disposition", "attachment; filename=""" & fileName & """") Response.AddHeader("Content-Length", ASCIIEncoding.ASCII.GetByteCount(htmlTable).ToString()) […]

在一个Excel文件中导出不同的表格到不同的PDF文件?

我有一个Excel文件有10张。 我们可以使用下面的导出整个Excel文件到一个PDF文件。 ExportAsFixedFormat(Microsoft.Office.Interop.Excel.XlFixedFormatType.xlTypePDF, outputPath, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing); 是否有可能导出每个工作表为PDF文件? 总而言之,我有10个PDF文件? WorkSheet.SaveAs可以保存工作表,但不会导出为pdf。 谢谢

从excel导入数据表跳过最后一列值

我想从Excel文件导入数据到数据表。 但问题是最后一列值被忽略。 其余列的值是完美的。 我的excel文件包含这个: 导入datatable中的数据如下: 我的代码是这样的: Dim connExcel As New OleDbConnection(constr) Dim cmdExcel As New OleDbCommand() Dim oda As New OleDbDataAdapter() Dim dt As New DataTable() cmdExcel.Connection = connExcel 'Read Data from First Sheet connExcel.Open() cmdExcel.CommandText = "SELECT * From [Sheet1$]" oda.SelectCommand = cmdExcel oda.Fill(dt) connExcel.Close() 连接string如下: <add name="ExcelCon12" connectionString="Provider=Microsoft.JET.OLEDB.12.0;Data Source={0};Extended Properties=Excel 8.0" /> <add […]

Excel自动化插件 – function不起作用

编辑:我想要做的真正的解决scheme可以在这里find这个职位。 我只是想公开一些编译好的函数。 使用Excel DNA nuget软件包certificate这非常简单。 您只需添加一个类库,添加nuget包,并复制粘贴在自述文件中find的代码。 单击F5,它将启动加载项已加载的Excel。 如果你想让你的函数保持持久性,只需要通过“开发人员”function区部分手动将加载项添加到excel文件。 原文:我正在按照这篇微软文章的说明来介绍如何创build一个自动化加载项。 代码编译得很好,我可以从Excel中访问函数。 但是这些function不起作用。 当我尝试给一个单元格分配一个函数调用的结果时,我几乎总是得到#value或#ref错误。 更具体: 以下由Microsoft提供的function不起作用。 它显示了我尝试使用它的单元格中的#value错误。 我select使用鼠标随机单元格范围作为函数的参数。 Public Function NumberOfCells(ByVal range As Object) As Double Dim r As Excel.Range = TryCast(range, Excel.Range) Return CDbl(r.get_Cells.get_Count) End Function 下面的函数,我创build不起作用。 我得到#ref错误。 我通过传递直接整数(Add1(1,2))或包含数字的单元格来调用它。 Public Function Add1(ByVal i1 As Integer, ByVal i2 As Integer) As Integer return i1+i2 End Function 下面我创build的函数(?!?): […]

确定select哪个function区选项卡

我正在处理的程序在Excelfunction区中有一个单独的(附加的)加载项选项卡。 还有我们的自定义控件等。一些控件打开一个新的工作簿(新的Excel窗口)。 在Excel 2010中,打开新工作簿时,默认情况下会select我们的自定义选项卡。 但在2013年,第一个(主页)选项卡被选中。 在该项目中,没有代码控制在新打开的工作簿中默认select哪个选项卡。 这就是为什么我想知道它在2010年有效,但不是在2013年? 我研究过这个,但是我可以find大多数关于“如何创build新标签”的文章等等。 任何想法和build议都欢迎。

CSV中的换行符

我必须插入什么字符或字符组合到我的CSV文件,所以如果我在Excel中启用换行符在这一点正确地打破文本? Private Sub removeHTMLTags(ByRef text As String) Dim htmlTagRegex As New Regex("<[^>]*>") Dim lineBreakHTMLTagRegex As New Regex("(<p>)|(<br>)|(</br>)|(</p>)") text = lineBreakHTMLTagRegex.Replace(text, Chr(10)) text = htmlTagRegex.Replace(text, " ") text = text.Trim End Sub 而不是Chr(10)我也尝试了vbNewLine,vbCrLf,vbCr,但每次都得到相同的结果:当文件被Excel打开时,这些符号被解释为正常的换行符,这导致excel中的行分割 这应该是这样的: 这看起来像: 如果我想通过双击它来简单地加载csv文件,而不是通过导入对话框,我如何才能在第二个屏幕截图中实现样式 备注:这不是VBA,我需要通过外部vb.net控制台应用程序来创buildcsv文件后打开Excel。

打开另一个用户打开的共享驱动器上的工作簿(或其他Office文档)

假设共享networking驱动器上存在工作簿,并由用户A打开。如果用户B尝试通过双击打开该文件,则会得到类似于以下提示的内容: 如果用户B尝试以编程方式打开工作簿(也许使用加载项),请执行以下操作: Workbooks.Open("N:\path_to_workbook\workbook.xlsx") 究竟发生了什么? 这个提示是否出现? 如果是这样,可以用Application.DisplayAlerts = False来抑制吗? 如果上面的Workbooks.Open在这种情况下抛出exception,那么我们是否需要使用ReadOnly参数再次尝试: Workbooks.Open("N:\path_to_workbook\workbook.xlsx", ReadOnly:=True) 我已阅读其他post(包括这一个 ),build议Workbooks.Open在第一个代码段成功,工作簿打开只读,虽然这不是很清楚。 不幸的是,我没有一个configuration好的testing环境来自己复制这个场景,否则这个答案会很明显。