.Net Excel.dll在另一台计算机上部署和注册 aCan't add a reference to the specified file时,尝试DLL在VBA编辑器中添加引用时出现错误。
我已经创造了Excel.dll在C#中Visual Studio与运行正常我的机器上Windows 7和Office 2010。Excel VBA在我的计算机上的编辑器中添加对 dll 的引用没问题。我的问题是部署在另一台正在运行的机器上,Vista并且Excel 2007. 我把dll复制到这台电脑上,用来regasm注册dll。
任何人都可以指出我正确的方向吗?这里是代码和 regasm:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\regasm.exe excelDll.dll
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;
namespace TestDll
{
[ClassInterface(ClassInterfaceType.AutoDual)]
public class Test
{
public string HelloWorld
{
get
{
return "Hello World";
}
}
public …Run Code Online (Sandbox Code Playgroud) 我遇到问题,当 java 应用程序读取 Excel 文件 .xlsx 扩展名时,应用程序工作正常,但工作簿中有很多工作表,1、2 张工作表读取正确,但是当读取 3 个工作表时,没有读取所有单元格当我打开并检查 Excel 文件时,单元格存在空值,但是当 apache poi 读取它时,单元格只是忽略空单元格。什么是因? 更新
FileInputStream file = new FileInputStream(file_location);
//this.workbook = new HSSFWorkbook(file);
this.workbook = new XSSFWorkbook(file);
XSSFSheet mySheet = workbook.getSheetAt(index);
Iterator rowIter = mySheet.rowIterator();
while(rowIter.hasNext()){
XSSFRow myRow = (XSSFRow) rowIter.next();
Iterator cellIter = myRow.cellIterator();
ArrayList colStoreArray=new ArrayList();
while(cellIter.hasNext()){
XSSFCell myCell = (XSSFCell) cellIter.next();
colStoreArray.add(myCell);
}
rowArrayHolder.add(colStoreArray);
} }
Run Code Online (Sandbox Code Playgroud)
在读取 Excel 文件的上方,虽然我检查了 Excel 文件,其中一行有 20 个单元格,但它在某些行中只读取了 14 行。我正在使用ArrayList,看来这里应该是并发访问ArrayList的问题。可能是什么原因?
我创建了一个 Excel 加载项,用于包含导入数据的工作簿。我需要添加将执行以下操作的代码:
示例:C:\Users\jdoe\My Documents\Extract Files\Extract - 01-15-2016 15:15.xlsx
我找到了这个,但需要知道如何将我的上述条件纳入此代码:
ActiveWorkbook.SaveAs Filename:=myFileName, FileFormat:=xlOpenXMLWorkbook
Run Code Online (Sandbox Code Playgroud)
如果 VBA 不存在,我对 VBA 的了解不足以创建一个文件夹(如果您可以使用 VBA 执行此操作)。我已经看过了,但找不到任何有用的东西。在这里寻求一些指导。谢谢。
在 Excel Interop 中,我可以将标题行设置为在后续页面上重复,如下所示:
_xlSheet.PageSetup.PrintTitleRows = String.Format("${0}:${0}", COLUMN_HEADING_ROW);
Run Code Online (Sandbox Code Playgroud)
它是如何在 EPPlus 中完成的?我尝试通过键入以下内容来刺激 Intellisense 给我一个线索:
prodUsageWorksheet.PrinterSettings.
Run Code Online (Sandbox Code Playgroud)
...但没有“打印”(“PrintArea”除外)或“标题”提供给我...
我正在使用 Node.js 和js-xlsx来生成新的 Excel 文件。生成新文件时,我希望将其保存到本地磁盘。
此代码用于生成和下载新的 Excel 文件,如何将其存储到磁盘?
FileManagement.generateExcelFile("xlsx-filtered-list", "error-sheet", finalResult, res);
generateExcelFile(fileName, sheetName, data, res) {
const workSheet = sheet_from_array_of_arrays(data);
const workBook = new Workbook();
workBook.SheetNames.push(sheetName);
workBook.Sheets[sheetName] = workSheet;
const workBookOptions = { bookType:'xlsx', bookSST:false, type:'binary' };
const workBookFile = xlsx.write(workBook, workBookOptions);
res.setHeader('Content-Type', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
res.setHeader('Content-Disposition', 'attachment; filename='+fileName);
res.end(workBookFile, 'binary');
// Functions work Excel generation (don't touch)
function Workbook() {
if(!(this instanceof Workbook)) return new Workbook();
this.SheetNames = [];
this.Sheets = {};
}
function sheet_from_array_of_arrays(data) {
const workSheet …Run Code Online (Sandbox Code Playgroud) 我在Excel 2007中有一个自定义函数.它返回双精度数组.
Dim ResultArray(10) As Double
Run Code Online (Sandbox Code Playgroud)
如果我使用Ctrl-Shift-Enter使用它,我会连续获得10个结果.
我想访问结果数组中的特定resut.
说第二个结果.我期待类似= myFn(a,b,c)(2)的东西,但它不起作用....
可能吗?
我试图使用以下表达式在我的Excel数据中找到文本模式.目标是在文本找到后删除它.
/.([0-9] + [] X [] [0-9] + []?DPI)./一世
救命!
我有这样的功能:
Function GetLastRowOnSheet(ByVal SheetName As Worksheet) As Long
On Error Resume Next
GetLastRowOnSheet = SheetName.Cells.Find(what:="*", after:=SheetName.Cells(1), searchorder:=xlByRows, searchdirection:=xlPrevious).Row
On Error GoTo 0
End Function
Run Code Online (Sandbox Code Playgroud)
假设我有一张名为"Sheet1"的工作表,在我的Excel工作表中,我希望能够说= GetLastRowOnSheet('Sheet1')或使用命名范围
我可以使用上面的函数以及包含以下函数的子例程或函数在vba中轻松完成此操作:
Dim Sheet1 As Worksheet
Dim LastRow as Long
Set Sheet1 = ThisWorkbook.Sheets("Sheet1")
LastRow = GetLastRowOnSheet(Sheet1)
' last row then returns the last filled in cell on the sheet
Run Code Online (Sandbox Code Playgroud)
思考?
我在单元格A1中有一个看起来像的字符串
abc 123
它是一个包含多个前导空格,尾随空格和中间空格的字符串.如何在保留中间空格的同时去除前导空格和尾随空格?
结果应该是
abc 123
我试过使用这个TRIM功能
=TRIM(" abc 123 ")
但这是我得到的结果
abc 123
我在Excel 2007上运行,如果这有所作为.
我正在使用MS Excel 2007中的复选框数组创建一个清单.根据复选框的数量,有2 ^ 7(= 128)种可能的组合,其中可以选中复选框.选中的每个复选框组合都会产生独特的结果.
成功测试每个条件并在工作表中的单元格中提供结果的最有效方法是什么?
示例代码:
=if(and(chkbox1=true,chkbox2=true,chkbox3=false,chkbox4=false,chkbox5=true,chkbox6=false,chkbox7=true),"Unique outcome",if(and(chkbox8=true,chkbox9.............)))))))))
Run Code Online (Sandbox Code Playgroud)
我尝试(尝试失败)的方法是使用IF语句.我试图通过创建14个命名范围来绕过嵌套的IF限制,每个命名范围大约有9个嵌套IF,并在电子表格中的有效嵌套IF中编译14个命名范围.不幸的是,处理器正在努力计算其结果(即计算机"冻结").
目前,我正在考虑使用VBA代码,因为人们已经说过这将是处理众多条件的最有效方式.有没有人有任何建议或建议?
excel-2007 ×10
excel ×5
vba ×4
excel-vba ×3
excel-2010 ×2
apache-poi ×1
c# ×1
checkbox ×1
dll ×1
epplus ×1
epplus-4 ×1
express ×1
if-statement ×1
jakarta-ee ×1
java ×1
javascript ×1
js-xlsx ×1
node.js ×1
regasm ×1
windows-7 ×1