我有一个带有图表(Clustered Column)的Excel文档(2007),它从包含计算值的单元格中获取其Data Series
计算值不会直接更改,而只会因工作表中其他单元格的更改而更改
当我更改工作表中的其他单元格时,将重新计算数据系列单元格并显示新值 - 但基于此数据系列的图表拒绝自动更新
我可以通过保存/关闭或切换其中一个设置(例如反转x/y轴然后将其放回)或重新选择数据系列来更新图表
我在网上找到的每个解决方案都不起作用
我尝试过VBA脚本,如:
Application.Calculate
Application.CalculateFull
Application.CalculateFullRebuild
ActiveWorkbook.RefreshAll
DoEvents
这些都不会更新或刷新图表
我注意到,如果我键入我的数据系列,实际数字而不是计算,它将更新图表 - 就像Excel不想识别计算中的更改一样
有没有人以前经历过这个或知道我可以做些什么来解决这个问题?谢谢
有谁知道我可以操作的组合框中的属性是什么,以便不允许用户键入/输入任何数据?
我正在尝试使用OpenXML以xlsx格式创建Excel文件,因为我需要在Web服务器上使用它.
填写表格中的值没有任何问题; 但是我很难在单元格中设置经典的日期格式.
下面是使用DocumentFormat.OpenXml和WindowsBase引用的快速测试.
class Program
{
static void Main(string[] args)
{
BuildExel(@"C:\test.xlsx");
}
public static void BuildExel(string fileName)
{
using (SpreadsheetDocument myWorkbook =
SpreadsheetDocument.Create(fileName,
SpreadsheetDocumentType.Workbook))
{
// Workbook Part
WorkbookPart workbookPart = myWorkbook.AddWorkbookPart();
var worksheetPart = workbookPart.AddNewPart<WorksheetPart>();
string relId = workbookPart.GetIdOfPart(worksheetPart);
// File Version
var fileVersion = new FileVersion { ApplicationName = "Microsoft Office Excel" };
// Style Part
WorkbookStylesPart wbsp = workbookPart.AddNewPart<WorkbookStylesPart>();
wbsp.Stylesheet = CreateStylesheet();
wbsp.Stylesheet.Save();
// Sheets
var sheets = new Sheets();
var sheet = …Run Code Online (Sandbox Code Playgroud) 我正在寻找一种方法来使用Excel表结构化引用创建一个运行总计(当前行和以上的总和).
我知道如何使用旧的基于行/列的方式来做到这一点:
=SUM($A$2:$A2)
我知道如何使用结构化引用来整合整个列:
=SUM([WTaskUnits])
而且我知道如何使用当前单元格[#ThisRow],但我不知道如何让表格的第一行在a中使用它SUM.
我正在尝试使用带有"Microsoft.ACE.OLEDB.12.0"OLE DB提供程序的T-SQL OpenRowset()命令将Excel 2007(.xlsx)文件中的数据导入SQL Server 2008,并且我得到一个持久的"找不到可安装的ISAM"错误.所有硬件都是32位.
[修订于2012年1月10日,试图更加集中于异常]
以下T-SQL语句产生错误:
SELECT * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0',
'Data Source=C:\work\TestData.xlsx;Extended Properties="Excel 12.0 XML;HDR=YES"',
'SELECT * FROM [Sheet1$]'
)
Run Code Online (Sandbox Code Playgroud)
如果我以"Excel 97-2003"格式(.xls)保存Excel文件并使用较旧的Microsoft.Jet.OLEDB.4.0提供程序导入数据,它可以正常工作.这让我觉得这不是安全或其他环境问题.
SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'Excel 8.0;Database=C:\work\TestData.xls;HDR=YES',
'SELECT * FROM [Sheet1$]'
)
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试使用Microsoft.ACE.OLEDB.12.0提供程序的*.xls文件时,它应该向后兼容*.xls格式,它再次失败并出现相同的错误:
SELECT * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0',
'Data Source=C:\work\TestData.xls;Extended Properties="Excel 8.0;HDR=YES";',
'SELECT * FROM [Sheet1$]'
)
Run Code Online (Sandbox Code Playgroud)
另外,有趣的是,当我使用SSMS"导入数据..."向导时,它工作正常.我将导入数据向导输出保存为SSIS包,并查看SSIS文件以试图弄清楚它是如何工作的,并且它已成功使用Microsoft.ACE.OLEDB.12.0提供程序.这是SSIS包中的连接字符串:
<DTS:Property DTS:Name="ConnectionString">
Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\work\TestData.xlsx;Extended Properties="Excel 12.0 XML;HDR=YES";
</DTS:Property>
Run Code Online (Sandbox Code Playgroud)
我还完成了相关的SQL Server配置以允许OPENROWSET分布式查询:
sp_configure 'show advanced options', 1
reconfigure
GO
sp_configure 'Ad Hoc Distributed Queries', 1
reconfigure
GO
Run Code Online (Sandbox Code Playgroud)
如果我还设置了以下*sp_MSset_oledb_prop*值(我在某个帖子中找到)...
USE [master]
GO
EXEC …Run Code Online (Sandbox Code Playgroud) 我知道Excel能够直接打开HTML文件.但是文件的内容仍然是HTML.有什么办法可以将文件的内容从HTML更改为XLS或XLSX吗?
我正在尝试使用PHPExcel以下方法下载Excel文件(xlsx).
require_once("../../phpExcel/Classes/PHPExcel.php");
require_once("../../phpExcel/Classes/PHPExcel/IOFactory.php");
$objPHPExcel = new PHPExcel();
$objPHPExcel->getProperties()->setCreator("Tiny")
->setLastModifiedBy("Tiny")
->setTitle("Office 2007 XLSX Test Document")
->setSubject("Office 2007 XLSX Test Document")
->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.");
$objPHPExcel->setActiveSheetIndex(0);
$sheet=$objPHPExcel->getActiveSheet();
$sheet->setCellValue('A1', 'Hello');
$sheet->setCellValue('B2', 'world!');
$sheet->setCellValue('C1', 'Hello');
$sheet->setCellValue('D2', 'world!');
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="test.xlsx"');
header('Cache-Control: max-age=0');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save('php://output');
Run Code Online (Sandbox Code Playgroud)
它可以工作但是当我尝试打开Excel文件时,它会在一致的对话框中要求确认.
Excel在'test.xlsx'中找到了不可读的内容.你想恢复这个工作簿的内容吗?如果您信任此工作簿的来源,请单击"是".
我还尝试按如下方式更改标题
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");;
header("Content-Disposition: attachment;filename=test.xlsx");
header("Content-Transfer-Encoding: binary");
Run Code Online (Sandbox Code Playgroud)
它仍然要求同样的确认.我在这做错了什么,拜托?
我在Excel电子表格中有一个大型数据表,基本上可以被认为是被识别为属于各种子群体的个人的价值集合:
IndivID SubPopID Value
1 A 33.56
2 E 42.31
3 D 16.35
4 A 50.59
5 F 80.63
...
Run Code Online (Sandbox Code Playgroud)
该表中有超过10,000个人,超过50个子群体.
我想计算每个子群体的5个数字摘要(Min,Q1,Median,Q3,Max).
枢轴表中的最小值和最大值很容易.但Q1,Q2(中位数)和Q3似乎不可能.
题
有没有办法计算Excel中数据透视表中每个子群的四分位数?
答案应如下所示:
SubPopID Min Q1 Q2 Q3 Max
A 3.23 12.06 20.35 28.29 50.59
B
C
...
Run Code Online (Sandbox Code Playgroud) 我正在优化VBA中没有声明任何数据类型的宏,因此编译器将所有内容都作为变量进行了笨拙的处理.我正在处理科学测量,所以我需要精确度.我如何声明"Dim decAsdf为十进制"(不是那样但是正确的方法)?
我有一个Excel工作簿,单击表单按钮我想保存工作簿的副本,文件名是当前日期.
我一直在尝试以下
ActiveWorkbook.SaveAs ("\\filePath\FormFlow To MSExcel\" & Left(Now(), 10))但接受了Run-time error '1004': Method 'SaveAs' of object'_Workbook' failed.
任何人都可以帮我这个吗?我仍然很擅长开发Excel.
excel-2007 ×10
excel ×6
vba ×4
excel-vba ×3
archive ×1
c# ×1
controls ×1
html ×1
isam ×1
oledb ×1
openrowset ×1
openxml ×1
php ×1
phpexcel ×1
pivot-table ×1
save ×1
statistics ×1
t-sql ×1