Tag: c#

在ASP.NET MVC 5.1中保存Excel文件导致COMException – >它试图将它保存在我的文档中,而不是在项目资源中

我想在服务器端创buildexcel文件,然后将其发送到客户端(启用下载): public ActionResult ExportToExcel() { Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application(); xlApp.Visible = true; Workbook wb = xlApp.Workbooks.Add(XlWBATemplate.xlWBATWorksheet); Worksheet ws = (Worksheet)wb.Worksheets[1]; // Select the Excel cells, in the range c1 to c7 in the worksheet. Range aRange = ws.get_Range("C1", "C7"); // Fill the cells in the C1 to C7 range of the worksheet with the […]

在Excel中迭代通过行

我试图从excel电子表格的列A中的单元格中获取所有数字,但我只是得到我的标题行返回。 我究竟做错了什么? static void Main(string[] args) { var excel = new Microsoft.Office.Interop.Excel.Application(); Workbook workbook = excel.Workbooks.Open(@"C:\Documents\ANIs.xlsx"); Worksheet worksheet = workbook.Worksheets[1]; Range a1 = worksheet.get_Range("$A1"); object rawValue = a1.Value; string Text = a1.Text; foreach (Range item in a1.Cells) { Console.WriteLine("{1}", rawValue, Text); } Console.Read(); }

C#不能将typesSystem.DBNull隐式转换为string

需要一点帮助,我试图从工作表中拉出数据,我得到上述错误。 它发生在string文本行上。 我能做些什么转换或忽略null? var excel = new Microsoft.Office.Interop.Excel.Application(); Workbook workbook = excel.Workbooks.Open(@"C:\Documents\ANIs.xlsx"); Worksheet worksheet = workbook.Worksheets[1]; Range a1 = worksheet.get_Range("A1","B2"); object rawValue = a1.Value; string Text = a1.Text; //<–Error Occurs here. for (int i = 0; i < a1.Count; i++) { if (a1.Text != null) Console.WriteLine("{1}", rawValue, Text); } Console.ReadLine(); } 提前致谢。

从数据表对象导出数据到Excel的高效方法

下面的代码做这个工作,但是完成执行需要将近60秒。 大约有2000行和55列。 我猜嵌套循环不是最有效和最专业的方式,我在谷歌search,但还没有find更好的办法…(我想也许有一种方法来使用SQL?)。 我会感谢提高这个任务的效率的build议。 (它写在vb.net但c#也很好的例子和build议) Public Sub LoadDataTableToExcell(ByVal d As DataTable, ByVal path As String, ByVal fileName As String, ByVal newFile As Boolean, ByVal sheetName As String) If CheckIfDirExist(path) = False Then MsgBox("the Path" & " " & path & " " & "Does not exist") Exit Sub End If CreateAnExcelFile(path, sheetName) Dim xlapp As […]

用C#testingEssbasemacros

我正在尝试自动化一些Excel报告。 目前我需要从Essbase服务器中检索一些数据,为了实现这个function,我创build了一个macros来检索和设置Excel工作表中的数据,我的VBA代码如下: Option Explicit Declare Function EssVRetrieve Lib "ESSEXCLN.XLL" (ByVal sheetName As Variant, ByVal range As Variant, ByVal lockflag As Variant) As Long Declare Function EssVConnect Lib "ESSEXCLN.XLL" (ByVal sheetName As Variant, ByVal userName As Variant, ByVal password As Variant, ByVal server As Variant, ByVal application As Variant, ByVal database As Variant) As Long Declare […]

从asp.net后面的代码调用jquery函数是行不通的

我有一个button点击事件 protected void btndwnReport_Click(object sender, EventArgs e) { try { save("Report1"); } catch (Exception ex) { Log.Errlog("Error Occured in btndwnReport_Clickof UI_Report Page : " + ex.Message.ToString()); } finally { Page.ClientScript.RegisterClientScriptBlock(typeof(Page), "HideLoading", "HideLoading2();", true);//this function is not triggering } } 使用这个我想使用reportviewer下载一个excel文件。 点击这个button,我显示一个加载图标(通过调用ShowLoading2()),它被定义为一个jQuery的function。 function ShowLoading2() { try { if (parent.document.getElementById('dvProgress')) $("#dvProgress", parent.document).hide(); } catch (e) { } […]

无法从Excel转换date

我开发了一个C#应用程序来从Excel文件中读取数据。 date也很less,格式为“dd / MM / yyyy” ,我可以将它们转换成DateTime对象。 但是,当我将相同的代码放在Web服务器上时,它将以“MM / dd / yyyy”格式读取Exceldate。 我检查了服务器上的区域设置,它和我的本地机器是“en-AU”一样 。 下面是转换date的函数: private DateTime? GetDate(string value) { if (value.Contains('/') || value.Contains('-')) { DateTime date = new DateTime(); string[] formats = { "dd/MM/yyyy", "dd/M/yyyy", "d/M/yyyy", "d/MM/yyyy", "dd/MM/yy", "dd/M/yy", "d/M/yy", "d/MM/yy", '"d-MMM-yyyy", "dd-MMM-yyyy", "d-MMM-yy", "dd-MMM-yy", "MM/dd/yyyy", "M/dd/yyyy", "M/d/yyyy"}; if (DateTime.TryParseExact(value, formats, CultureInfo.InvariantCulture, DateTimeStyles.None, out […]

从Excel文件读取

我正在尝试从具有四列和121行的Excel文件读取。 我试过.csv的想法,但我想我理解错了,因为当我编译这个时,它会变得混乱起来。 如何确保城市获得第一个单元格,国家获得第二,第三个获得第三个,第四个获得第四个? #include "stdafx.h" #include <iostream> #include <fstream> #include <string> using namespace std; int main() { ifstream inFile; string city; string country; string lat; string lon; inFile.open("worldcities.csv"); if (inFile.is_open()) { cout << "File has been opened" << endl; } else { cout << "NO FILE HAS BEEN OPENED" << endl; } while (!inFile.eof()) { […]

从excel“csv格式”中获取数据类似于linq跳过

我需要根据行号从CSV文件中检索特定部分 例如:从第5行到第12行 我正在使用OleDbConnection并试图使用此查询: select * from [sheet1.csv$A5:A12] 但它不起作用。 C#代码: var filename = @"C:\Users\A\Desktop\passwords.csv"; var connString = string.Format( @"Provider=Microsoft.Jet.OleDb.4.0; Data Source={0};Extended Properties=""Text;HDR=YES;FMT=Delimited""", Path.GetDirectoryName(filename) ); using (var conn = new OleDbConnection(connString)) { conn.Open(); var query = "SELECT * FROM [" + Path.GetFileName(filename) + "$A5:A12]"; using (var adapter = new OleDbDataAdapter(query, conn)) { var ds = new DataSet("CSV […]

Visual Studio Excel数据透视表不显示数据

我正在编写一个应用程序来在现有的Excel工作簿中添加数据透视表工作表。 代码如下: Console.WriteLine("File: " + e.FullPath + " " + e.ChangeType); if (e.Name.StartsWith("~$")) return; Excel.Application oApp; Excel.Worksheet oSheet; Excel.Workbook oBook; oApp = new Excel.Application(); try { oBook = oApp.Workbooks.Open(e.FullPath); oSheet = (Excel.Worksheet)oBook.Worksheets.get_Item(1); //Excel.Range finalCell = oSheet.Cells[2, oSheet.Rows.Count]; Excel.Range oRange = oSheet.get_Range("A1", "M9"); if (oApp.Application.Sheets.Count < 2) { oSheet = (Excel.Worksheet)oBook.Worksheets.Add(); } else { oSheet = […]